0

私は5つのテーブルを含むプロジェクトに取り組んでいます:


This-> ThisThat <-That-> ThatFoo <-Foo

asp.netEntityFrameworkのモデルを介してテーブルの関係を定義しました。

'This'には、ThisID(PK)、Nameの列が含まれています。

'ThisThat'には、ThisThatID(PK)、ThisID(FK)、ThatID(FK)の列が含まれています。

'That'には、ThatID(PK)、Nameの列が含まれています。

'ThatFoo'には、ThatFooID(PK)、ThatID(FK)、FooID(FK)の列が含まれています。


わかりました。「FooID」があり、関連する「ThisThat」のリストを取得する必要があります。

これが私が試したことです:

int FooID = 1;
IEnumerable<int> thatIDs = db.ThatFoo.Where(tf=>tf.FooID == FooID).ToList();
IEnumerable<ThisThat> thisthats = db.ThisThat.Where(tt=>tt.ThatID == thatIDs).ToList();

と:

IEnumerable<ThisThat> thisthat = db.ThisThat.Include(p=>p.That.ThatFoo.Where(x=>x.FooID == FooID)).ToList();

.Selectと.SelectManyも試してみました。私はグーグルでいろいろなものを検索しましたが、私の状況に関連するものは何も見つかりません。

他に何を試すべきかよくわかりません...提案(読んでくれてありがとう)?

4

1 に答える 1

1

試す

IEnumerable<ThisThat> thisthats = db.ThisThat
     .Where(tt=>tt.That.ThatFoos.Any(tf =>tf.FooID == FooID)).ToList();
于 2012-04-11T04:58:23.937 に答える