2017-10-25 11 views
0

私は、呼び出し側に返す必要のある一連のエンティティを持っています。いくつかの例では、クラスA、クラスB、クラスAおよびクラスBの両方が必要になる場合があります。データはすべて1つのテーブルからあり、適切な数の列があります。現在のコードはAを呼び出し、それをC.ClassOfAにマップし、Bを呼び出してClassOfBにマップします。私はこの混乱を元に戻すことができますが、AとBを1回の呼び出しでCに戻したいと思いますが、私はDapperと闘っています(これは実行できない可能性があります)。 AがBを参照するかどうかは知っていますが、私はマルチマッピングを使ってすべてを返すことができますが、そうではありません。また、Oracleデータベース(これは私の最強の訴訟ではありません)が重要です。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;} 

私が動的に使用しているクエリを構築することができ、それぞれのタイプを返すことができますが、私は、このようなAとBのマップの両方を返すクエリというCをマッピングする方法を見つけ出すことはできません。私の2種類があると仮定代わりにC.私。これは可能ですか?

TIA

答えて

0

私はよく理解していれば、あなたはにClassA/Bのオブジェクトを含むクラスCのオブジェクトを返すようにしたいです。 ClassC内のネストされたクラスです。戻ってあなたのクラスにDapperのデータをマップします https://github.com/SlapperAutoMapper/Slapper.AutoMapper

は、あなたがスラッパーを見ていると考えることがありますか?

のOracle SQLは以下のようになり、彼らは/あなたのクラスA/ClassBの上のプロパティ名に対応してマップされるように、あなたは、選択した列のエイリアスを作成します:

select a.value1 as ClassOfA_InventoryOnHand, 
    a.ProjectedSales as ClassOfA_ProjectedSales, 
    b.ExpectedReturns as ClassOfB_ExpectedReturns, 
from a, b 
関連する問題