Dapper .NET : 매핑 사용자 정의

.net c# dapper

문제

모델

public class ErrorReport{
    public int? Id {get;set;}
    public ExceptionReport Exception {get;set;}
    public ExceptionReport InnerException {get;set;}
}

public class ExceptionReport{
    public string Type {get; set;}
    public string Message {get; set;}
}

데이터 베이스

이 테이블에서 쿼리 할 테이블입니다.

ErrorReports

  • Id : int
  • ExceptionType : varchar
  • ExceptionMessage : varchar
  • InnerExceptionType : varchar
  • InnerExceptionMessage : varchar

문제

그래서, 내가하고 싶은 일은 데이터베이스를 쿼리하고 결과를 내 모델 속성에 매핑하는 것입니다. 그러나 이것은 효과가 없습니다.

using (var con = ConnectionFactory.CreateConnection(_connectionString))
{
     IEnumerable<ErrorReport> reports = con.Query<ErrorReport>("Select * from ErrorReports");
}

어떤 열이 어떤 속성에 매핑되는지 명시 적으로 말해야한다는 것을 이해합니다. 어떻게 할 수 있습니까?

인기 답변

쿼리를 dynamic 으로 반환 한 다음 각 속성을 해당 복합 개체에 매핑 할 수 있습니다.

using (var con = ConnectionFactory.CreateConnection(_connectionString))
{
    List<ErrorReport> reports = 
        con.Query<dynamic>("Select * from ErrorReports")
            .Select(x => new ErrorReport 
            { 
                Id = x.Id, 
                Exception = new ExceptionReport
                {
                    Type = x.ExceptionType,
                    Messsage = x.ExceptionMessage
                },
                InnerException = new ExceptionReport
                {
                    Type = x.InnerExceptionType,
                    Messsage = x.InnerExceptionMessage
                }
            }).ToList();
}


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