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

Does dapper.contrib support primary key in varchar type?

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

当我运行应用程序时,抛出以下异常

can not insert null value to primary key catid

谁能给我一些建议?

can not insert null value to primary key 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();
   } 
}

希望对你有帮助,如果谁有更好的解决办法请post在此谢谢。