2017-10-25 3 views
0

호출자에게 반환해야하는 일련의 엔티티가 있습니다. 경우에 따라 클래스 A, 클래스 B, 클래스 A 및 클래스 B가 필요합니다. 데이터는 모두 하나의 테이블에서 관련이 있으며 적절한 수의 열이 있습니다. 현재 코드는 A를 호출하고이를 C.ClassOfA에 매핑하고 B를 호출하여 ClassOfB에 매핑합니다. 이 과정을 취소 할 수는 있지만 한 번 호출하면 A와 B를 C로 반환하고 싶지만 Dapper와는 어려움을 겪고 있습니다. A가 B를 참조하는 경우 멀티 매핑을 사용하여 모두를 반환 할 수 있지만 그럴 수는 없습니다. 또한, 오라클 데이터베이스 (내게 가장 적합하지 않은 경우)가 중요합니다. 가정 내 두 가지 유형은 다음과 같습니다dapper로 여러 자식 개체 매핑

class A 
    int InventoryOnHand {get;set;} 
    int ProjectedSales {get;set;} 
class B 
    int ExpectedReturns{get;set;} 
    int ProjectedProduction{get;set;} 

class C 
    A ClassOfA{get;set;} 
    B ClassOfB{get;set;} 

은 내가 동적으로 사용하고 있는데 각 유형을 반환 할 수 쿼리를 구축 할 수 있습니다하지만 난 C는 매핑하는 방법을 알아낼 수 모두 A와 B의지도를 반환하는 쿼리 C. 대신. 이것이 가능한가? TIA

답변

0

내가 잘 이해한다면

, 당신은를 ClassA/B의 객체를 포함하는 클래스 C의 객체를 반환합니다. ClassC 내에서 중첩 된 클래스. https://github.com/SlapperAutoMapper/Slapper.AutoMapper

다시 수업에 말끔 데이터를 매핑 할 :

는 슬 래퍼보고 생각이 있나요?

오라클 SQL은 아래와 같이 보일 것입니다 그들은 속성 이름에 해당 당신에를 ClassA/ClassB가지도/있도록 선택한 열을 별칭을 것입니다 :

select a.value1 as ClassOfA_InventoryOnHand, 
    a.ProjectedSales as ClassOfA_ProjectedSales, 
    b.ExpectedReturns as ClassOfB_ExpectedReturns, 
from a, b