LINQ查询帮助-多对多相关

LINQ查询帮助-多对多相关,linq,entity-framework,linq-to-entities,fluent-interface,Linq,Entity Framework,Linq To Entities,Fluent Interface,在我的数据库中,我有一个用户表和一个工作组表,以及一个多对多关系。用户可以属于一个或多个工作组。我正在为我的ORM使用实体框架(EF4.1代码优先) 用户表包含以下用户: 1,2,3,4,5,6,7,8,9,10 工作组表包含以下工作组: A,B,C, D WorkgroupUser表中有个条目 A1, A2, A3, A4, A5 B1, B3, B5, B7, B9 C2, C4, C6, C8, C10 D1, D2, D3, D9, D10 我想做的是: 给定用户4,它属于工作组A

在我的数据库中,我有一个用户表和一个工作组表,以及一个多对多关系。用户可以属于一个或多个工作组。我正在为我的ORM使用实体框架(EF4.1代码优先)

用户表包含以下用户:

1,2,3,4,5,6,7,8,9,10
工作组表包含以下工作组:

A,B,C, D
WorkgroupUser表中有个条目

A1, A2, A3, A4, A5
B1, B3, B5, B7, B9
C2, C4, C6, C8, C10
D1, D2, D3, D9, D10
我想做的是: 给定用户4,它属于工作组A、C 并拥有普通用户

1,2,3,4,5 (from workgroup A) and 
2,4,6,8,10 from workgroup C
不同的共同用户集是1,2,3,4,5,6,8,10

如何为此编写LINQ语句(最好使用fluent API)

谢谢,

这里是总体思路(因为我不知道用户和工作组实体的属性)


谢谢你的及时回复。。。但我在“独特”部分遇到了麻烦。SelectMany返回一个IQueryable——因此上面查询的结果返回我,例如,两个IList。想法?我想我知道了。。。我需要在查询的两个部分都使用SelectMany.Ah。错过了第二个
SelectMany()
var result = context.users.Where(u => u.ID == 4)
                          .SelectMany(u => u.WorkGroups.SelectMany(wg => wg.Users))
                          .Distinct()