수동으로 클래스 속성으로 열 이름 매핑

dapper

문제

Dapper Micro ORM을 처음 사용합니다. 지금까지 간단한 ORM 관련 물건을 사용할 수 있지만 데이터베이스 속성을 사용하여 데이터베이스 열 이름을 매핑 할 수 없습니다. 예 :

데이터베이스 테이블은 다음과 같습니다.

public class Person 
{
    public int PersonId { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
}

나는 Person이라는 클래스를 가지고있다.

public class Person 
{
    public int PersonId { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
}

표의 내 열 이름은 쿼리 결과에서 가져온 데이터를 매핑하려는 클래스의 속성 이름과 다릅니다.

public class Person 
{
    public int PersonId { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
}

열 이름이 객체의 (Person) 속성과 일치하지 않으므로 위 코드는 작동하지 않습니다. 이 시나리오에서는 Dapper에서 객체 속성을 사용하여 수동으로 (예 : person_id => PersonId ) 열 이름을 매핑 할 수 있습니까?

어떤 단서 또는 도움을 주시면 감사하겠습니다.

수락 된 답변

이 잘 작동합니다.

var sql = @"select top 1 person_id PersonId, first_name FirstName, last_name LastName from Person";
using (var conn = ConnectionFactory.GetConnection())
{
    var person = conn.Query<Person>(sql).ToList();
    return person;
}

Dapper에는 열 속성 을 지정할 수있는 기능이 없습니다. 종속성을 가져 오지 않으면 지원 기능을 추가하는 것이 아닙니다.


전문가 답변

얼마 동안 다음과 같이 작동해야합니다.

Dapper.DefaultTypeMap.MatchNamesWithUnderscores = true;



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