dapper.contrib 是不是支持 varchar 类型的主键?
Posted
技术标签:
【中文标题】dapper.contrib 是不是支持 varchar 类型的主键?【英文标题】:Does dapper.contrib support primary key in varchar type?dapper.contrib 是否支持 varchar 类型的主键? 【发布时间】:2015-08-17 09:38:29 【问题描述】:我是 Dapper 的新手,正在尝试编写一些代码来测试 Dapper.Contrib。
[Dapper.Contrib.Extensions.Table("Cat")]
public class Cat
[Dapper.Contrib.Extensions.Key]
public string catid get;set;
public string catName get;set;
...
Cat cat = new Cat()catid="somecharmaybe", catName="testcat"
conn.Insert(cat);
当我运行应用程序时,抛出以下异常
不能在主键catid中插入空值
谁能给我一些建议?
【问题讨论】:
你可能想看看这个扩展:github.com/tmsmith/Dapper-Extensions 【参考方案1】:不能在主键catid中插入空值
错误说你不能在 catid 上插入空值,因为 dapper 明白这是由数据库生成的身份密钥来解决这个使用 DapperExtension
public class Cat
public string catid get;set;
public string catName get;set;
public class CatMap : ClassMapper<Cat>
public CatMap()
Table("Cat")
Map(s=>s.CatId).Key(KeyType.Assigned);
AutoMap();
希望对你有帮助,如果有人有更好的解决方案,请在此处发布,谢谢。
【讨论】:
以上是关于dapper.contrib 是不是支持 varchar 类型的主键?的主要内容,如果未能解决你的问题,请参考以下文章
Dapper.Contrib 开发.net core程序,兼容多种数据库
Dapper SqlMapperExtensions / Dapper.Contrib?
Dapper的新实践,Dapper.Contrib的使用与扩展
在 Id 上具有 ExplicitKey 属性的类上使用 Dapper.Contrib InsertAsync 返回 0 作为 Id