Est-ce que dapper.contrib prend en charge la clé primaire dans le type varchar?

dapper

Question

Je suis nouveau sur Dapper, essayant d'écrire du code pour tester 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);

Lorsque je lance l'application, l'exception suivante est lancée

impossible d'insérer une valeur nulle dans la clé primaire

Quelqu'un peut-il me donner des conseils?

Réponse acceptée

impossible d'insérer une valeur nulle dans la clé primaire

L'erreur indique que vous ne pouvez pas insérer de valeur NULL sur catid, car Dapper comprend qu'il s'agit de la clé d'identité générée par la base de données pour résoudre cette utilisation. 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();
   } 
}

J'espère que cela aidera, si quelqu'un a une meilleure solution, merci de le poster ici.




Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi