0

我正在开发一个包含 5 个表的项目:


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

我已经通过 asp.net Entity Framework 中的模型定义了表关系:

'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 回答