Dapper Correct Object / Aggregate Mapping

dapper

문제

나는 최근에 생성 된 SQL에 너무 만족하지 않고 더 많은 제어권을 원했기 때문에 Dapper를 EF의 잠재적 교체품으로 평가하기 시작했습니다. 내 도메인 모델에서 복잡한 개체를 매핑하는 것과 관련하여 질문이 있습니다. Provider라는 객체가 있다고 가정 해 봅시다. 제공자는 부모 제공자 객체 (예 : 집계 루트)를 통해서만 액세스해야하는 IEnumerable 유형의 여러 속성을 포함 할 수 있습니다. QueryMultiple과 Map 확장 메소드를 사용하여 설명했던 유사한 게시물을 보았지만 Dapper가이를 수행 할 수 있다면 전체 객체 그래프를 불러올 메소드를 작성하고 싶었는지 궁금합니다. 또는 그것이 조각 식사를 할 필요가 있다면. 예를 들어 나의 물체는 다음과 같이 보일 수있다.

public AggregateRoot
      {
           public int Id {get;set;}
           ...//simple properties
           public IEnumerable<Foo> Foos
           public IEnumerable<Bar> Bars
           public IEnumerable<FooBar> FooBars
           public SomeOtherEntity Entity
           ...
      }

Dapper를 사용하여 전체 개체 그래프를 채우는 간단한 방법이 있습니까?

수락 된 답변

나는 비슷한 상황에 처해있다. 내 모든 SQL SQL Server 반환 플랫, 그래서 모든 하위 개체가 돌아 왔어요. 그런 다음 쿼리 <>를 사용하여 전체 집합을 매핑합니다. 나는 당신의 세트가 얼마나 큰지 잘 모르겠습니다.

이렇게 뭔가 :

select ID,fooid, foo1,foo2,BarName,barsomething,foobarid foobaritem1,foobaritem2 from blah

따라서 Query 태그의 마지막 객체는 return 객체입니다. SplitOn 의 경우 반환 값을 매핑이 실행될 플랫 배열로 생각해야합니다. 새 맵핑이 시작될 수 있도록 각 새 오브젝트에 대한 첫 x 째 리턴 값을 선택합니다.

예:

select ID,fooid, foo1,foo2,BarName,barsomething,foobarid foobaritem1,foobaritem2 from blah

스플릿 온은 "ID, fooid, BarName, foobarid"입니다. 반환 세트를 돌면서 각 객체에서 찾을 수있는 속성을 매핑합니다.

나는 이것이 도움이 되길 바래, 그리고 당신의 반환 세트가 너무 평평하게 돌아올만큼 크지 않기를 바랍니다.




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