dapper.contrib는 varchar 유형의 기본 키를 지원합니까?

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

응용 프로그램을 실행할 때 예외가 throw됩니다.

기본 키 catid에 null 값을 삽입 할 수 없습니다.

누구든지 조언을 해줄 수 있습니까?

수락 된 답변

기본 키 catid에 null 값을 삽입 할 수 없습니다.

오류는 당신이 catid에 null 값을 삽입 할 수 없다고 말합니다. 왜냐하면 dapper는이 용도를 해결하기 위해 데이터베이스에 의해 생성 된 ID 키입니다. 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();
   } 
}

나는 그것이 도움이되기를 바랍니다, 만약 누군가가 더 나은 솔루션을 친절하게 여기에 게시 감사합니다.



아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.