2

データセット内の複数のテーブルを返すいくつかの SQL ストアド プロシージャ ロジックを、linq でクエリされるエンティティ フレームワークの厳密に型指定されたオブジェクトに移植しています。

基本的に、テーブル A、B、および C からのデータが必要です。ここで、C には B への外部キーがあり、B には A への外部キーがあります。特定の制約 X.

基本的に、ストアドプロシージャは基本的に言った

TableA = select from A where A.AID = AIDPassedIn
TableB = select from B where B.AID = AIDPassedIn
TableC = select from TableB where TableB.XID = XIDPassedIn 
return new DataSet(TableA, TableB, TableC);
//yes this is gross and confusing, thus our current efforts

エンティティフレームワーク、これを非常に簡単にします

A.Include("B.C").Where(a => a.AID == AIDPassedIn)

私の唯一の問題は、これには C テーブルの制約 X が含まれていないことです。私はたくさんの記事を読みましたが、私が読んだものはすべて、where 句に追加できることを示唆しており、それによって最終的に得られる A オブジェクトがフィルタリングされます。ただし、その子のプロパティに関係なく、A オブジェクトは 1 つだけになるはずです。私が欲しいのは、AIDPassedIn を持つ A であり、そのすべてが子 B であり、制約 X に一致するすべての B の子 C です。

これは、これまでで最悪の言い回しの質問の 1 つだと思いますが、少し行き詰まりを感じています。どんな助けでも大歓迎です!

4

1 に答える 1