2011-07-22 5 views
0

編集:私ははL2SやEFを使用して、マスター/子レコードを関連付けるために、それは可能です

私はLINQのにストアドプロシージャから取得2つのオブジェクト/コレクションを持っている... .NET 3.5に制限していますSQLに(もし私がする必要があれば私はEFを使用することができます)。それらはデータベースと私のデータベースモデルの両方に1対多数の関係に関連しています。これらの2つのオブジェクトを関連付けることができます:

...データベースに戻ることなく?

答えて

0

はいLINQからSQLへの関係を熱心に読み込む方法を指定する方法があります。次のようなものが動作するはずです。あなたはルールがすべてのインスタンスを通じて持続したいが、あなたの場合は異なる場合があります場合は結構ですデータコンテキストのOnCreate部分でオプションを指定している

partial void OnCreated() { 
    DataLoadOptions options = new DataLoadOptions(); 
    options.LoadWith<ParentObject>(o => o.ChildObjects); 
    this.LoadOptions = options; 
} 

FYIのより深いネストされたオブジェクトの読み込みには微妙なニュアンスがあると思います。

これは、親オブジェクトが要求されたときに親オブジェクトの関連エンティティをロードするだけであり、最初の親要求によって生成されたクエリを結合する魔法は何もしません。したがって、本質的には、2つのクエリが、現在ではなく、親を要求するたびに実行されます。これは、列挙時にすでにロードされているため、データベースに戻ってリレーションの内容を取得しないという利点があります。

+0

ありがとう、これは役に立ちますが、私が探しているものではありません。私のストアドプロシージャの出力として、私はすでにマスターと子のレコードセット/コレクションを持っています。私はそれらを一緒に接着する方法をしたいので、標準のlinqとしてそれらをSQLオブジェクトに使用することができます。 – jlnorsworthy

+0

@jlnorsworthそれは理解でき、可能ですが、以前のバージョンがロードされていない限り、あなたが質問の大胆に格納されたprocの部分をどのように逃したのか分かりません。コンテキスト上にメソッドを作成して、異なるデータセットをIMultipleResult(procの出力)から取り出し、指定された依存エンティティでオブジェクトを返すことができます。あなたは一例が欲しいですか? –

+0

私はすでにIMultipleResultを返すコードを持っており、IMultipleResult.GetResult ().ToList()を使用して、別の結果をその中から自分のList に引き出します。それ以上のことはありますか? – jlnorsworthy

関連する問題