为多对多关系创建简单的Linq到EF查询

时间:2010-05-06 14:42:08

标签: sql linq entity-framework

我有两个多对多表,我需要为其编写实体框架Linq查询。我想要做的就是从“人员”表中检索与公司ID = 7有关系的任何人。

有人可以告诉我这会是什么样子吗?

表格如下:

人, ID PK, 标题, 用的名字, 姓

People_Companies PersonID PK, CompanyID PK,

公司 ID PK, CompanyNumber, 公司名, CompanyType,

SQL看起来像这样:

SELECT     People_Companies.PersonID, People_Companies.CompanyID,Companies.ID,Companies.CompanyNumber, Companies.CompanyName, 
                  Companies.CompanyType, People.ID AS Expr1, People.Title, People.Forename, People.Surname, People_Companies.PersonID AS Expr2, People_Companies.CompanyID AS Expr3, Companies.ID AS Expr4, Companies.CompanyNumber AS Expr5, Companies.CompanyName AS Expr6
FROM         People INNER JOIN
                  People_Companies ON People.ID = People_Companies.PersonID INNER JOIN
                  Companies ON People_Companies.CompanyID = Companies.ID
WHERE     (People_Companies.CompanyID = 7)

1 个答案:

答案 0 :(得分:3)

var q = context.People.Where(p => p.Companies.Any(c => c.CompanyId == 7)).ToList();