저장 프로 시저를 사용하는 다중 매핑을 사용하는 Dapper

asp.net-mvc-3 c# dapper stored-procedures

문제

이것은 ASP.NET MVC3의 Dapper에 관한 것입니다.

두 테이블 tblBranchMaster , tblZoneMaster 내 데이터베이스와 같은 세부 정보를 가진 두 개의 클래스 파일이 있습니다.

tblBranchMaster(ID, ZoneID, Name);
tblZoneMaster(ID, Name);    

두 테이블 모두 기본 키 외래 키 관계가 있습니다.

다음과 같은 쿼리를 저장 프로 시저가 있습니다.

Select * from tblBranchMaster;

다른 논리적 인 것들과 함께.

이제는 관련 지사가있는 존의 결과를 어떻게 얻어야합니까?

나는 다음과 같은 코드베이스를 가지고있다 :

List<tblBranchMaster> lstResult = Query<tblBranchMaster, tblZoneMaster,  tblBranchMaster>
  (tblBranchMaster.uspGetBranchListPagination, (objBranch, objZone) => 
  { objBranch.ZoneMaster = objZone; return objBranch; }, 
   param, splitOn:"Id").ToList();

이 코드는 다음과 같은 오류가 발생합니다 :

다중 매핑 API를 사용할 때 ID가 아닌 키가 있으면 splitOn 매개 변수를 설정해야합니다.
매개 변수 이름 : splitOn

나는 무엇을 놓치고 있는가 ???

인기 답변

조회 결과는 채우려는 오브젝트와 동일한 형식 및 순서를 가져야합니다. 이 경우 dapper는 "Id, Name, Id, Name"을 가질 것으로 예상합니다. 첫 번째 두 개는 분기 마스터의 ID와 Name이고 세 번째와 네 번째 열은 zone master의 Id와 Name입니다.

주어진 다음과 같은 클래스 :

class Branch 
{
    int Id { get; set }
    string Name { get; set }
}

class Zone 
{
    int Id { get; set }
    string Name { get; set }
}

그리고 저장 프로 시저에서 다음 SQL 쿼리 형식 :

SELECT b.Id, b.Name, z.Id, z.Name
FROM Branch b LEFT JOIN Zone z ON b.ZoneId = z.Id 

이 깔끔한 코드를 사용할 수 있어야합니다 :

var result = connection.Query<Branch, Zone, Branch> ("myStoredProcName", 
    (objBranch, objZone) => { objBranch.ZoneMaster = objZone; return objBranch; }, 
    param, commandType: CommandType.StoredProcedure).ToList();


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