データセット内の複数のテーブルを返すいくつかの 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 つだと思いますが、少し行き詰まりを感じています。どんな助けでも大歓迎です!