DapperExtensions MySQL INSERT 세트 ID

c# dapper dapper-extensions mysql

문제

수업이있는 경우 :

public class Person
{
    public int Id { get; set; }
    public string Name { get; set; }
}

그리고 Dapper / DapperExtensions를 사용하여 해당 MySQL 테이블에 삽입하려고합니다 :

var person = new Person { Id = 10, Name = "Bobby" };
connection.Insert(person);

MySQL의 Id 열이 AUTO_INCREMENT로 설정되고 테이블이 비어 있다고 가정합니다. 그런 다음 어딘가에있는 Id 값 10은 1로 변경됩니다.

Dapper / DapperExtensions를 사용하여 올바른 ID 10을 삽입 할 수 있습니까?

수락 된 답변

나는 해결책이 매우 간단하다는 것을 알게되었다. 이 솔루션은 맞춤 클래스 매퍼를 사용하고있었습니다. (EntityBase 클래스는 아래 코드에서 내 시스템의 모든 데이터베이스 엔터티에 대한 기본 클래스입니다.)

public class PrimaryKeyAssignedClassMapper<T> : ClassMapper<T> where T : EntityBase
{
    public PrimaryKeyAssignedClassMapper()
    {
        base.Map(m => m.Id).Key(KeyType.Assigned);
        base.AutoMap();
    }
}

Insert 메소드를 호출하기 전에 somepoint에서

DapperExtensions.DapperExtensions.DefaultMapper = typeof(PrimaryKeyAssignedClassMapper<>);


아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow