dapper.contrib是否支持varchar类型的主键?

时间:2015-08-17 09:38:30

标签: dapper

我是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

有人能给我一些建议吗?

1 个答案:

答案 0 :(得分:0)

  

无法将空值插入主键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();
   } 
}

我希望它有所帮助,如果有人有更好的解决方案,请在此发帖谢谢。