Dapper-dot-net을 사용하여 단일 SP에서 여러 레코드 매핑 방법

c# dapper

문제

단일 저장 프로 시저를 실행하면 50 개의 여러 개의 개별 선택이 반환되는 상황에서 Dapper를 사용하고 싶습니다. 개별 결과 집합 중 아무 것도 매우 넓지는 않습니다. 어쩌면 대부분 20 개 또는 30 개 열일 수 있습니다. 아래 코드는 Dapper Tests에서 가져온 것으로이 예제가 좋은 프로토 타입인지 궁금합니다.

스티븐, 고마워.

        const string sql = @"__sp_GetMISMOLoanInfo";
        using (var multi = _connection.QueryMultiple(sql, new { loannum = "3192381" }, commandType: CommandType.StoredProcedure))
        {
           var address = multi.Read<ADDRESS>().Single();
           var amortizationRule = multi.Read<AMORTIZATION_RULE>().Single();
           var appraiserLicense = multi.Read<APPRAISER_LICENSE>().Single();
           var automatedUnderwriting = multi.Read<AUTOMATED_UNDERWRITING>().Single();
           var avm = multi.Read<AVM>().Single();
           var borrowerDetail = multi.Read<BORROWER_DETAIL>().Single();
        }

편집하다

다음은 Marcs 응답을 기반으로 한 샘플입니다.

        const string sql = @"__sp_GetMISMOLoanInfo";
        using (var multi = _connection.QueryMultiple(sql, new { loannum = "3192381" }, commandType: CommandType.StoredProcedure))
        {
           var address = multi.Read<ADDRESS>().Single();
           var amortizationRule = multi.Read<AMORTIZATION_RULE>().Single();
           var appraiserLicense = multi.Read<APPRAISER_LICENSE>().Single();
           var automatedUnderwriting = multi.Read<AUTOMATED_UNDERWRITING>().Single();
           var avm = multi.Read<AVM>().Single();
           var borrowerDetail = multi.Read<BORROWER_DETAIL>().Single();
        }

수락 된 답변

이것은 홈 페이지에서 왔지만 테스트에서 유사해야합니다.

var sql = @"...";
using (var multi = connection.QueryMultiple(sql, new {id=selectedId}))
{
   var customer = multi.Read<Customer>().Single();
   var orders = multi.Read<Order>().ToList();
   var returns = multi.Read<Return>().ToList();
   ...
} 

인수 등은 정상적으로 작동하며 CommandType이 지정된 경우 정의 된 매개 변수 이름에 직접 매핑해야합니다.

.Read<T>() 에 대한 각 호출은 연속적인 결과 그리드와 관련이 있습니다.




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