在我的数据库中,我有一个用户表和一个工作组表,以及一个多对多的关系。用户可以属于一个或多个工作组。我正在为我的ORM使用实体框架(EF 4.1 Code First)。
用户表有用户:
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语句(最好是流畅的API)?
谢谢,
答案 0 :(得分:2)
这是一般性的想法(因为我不知道User和WorkGroup实体的属性)
var result = context.users.Where(u => u.ID == 4)
.SelectMany(u => u.WorkGroups.SelectMany(wg => wg.Users))
.Distinct()