用LINQ查询两个SQL表

本文关键字:两个 SQL LINQ 查询 | 更新日期: 2023-09-27 18:25:06

我得到了一个表Peoples和一个表PeopleRequirements

CCD_ 3被分配有对CCD_ 4的FK约束,并且还包含比特(布尔)字段CCD_。

现在,我想查询PeopleRequirements中有一行(其中有一行等于PeopleId == People.Id)并且PeopleRequirements.IsActive字段为true的所有人。

如何使用EF4和LINQ实现这一点?

我已经尝试过使用NavigationProperties:

e.QueryableSource = _dataContext.Peoples.Where(a => a.EMail != string.Empty && a.EMail != null && a.PeopleRequirements.Count > 0);

用LINQ查询两个SQL表

在EF中通常不会这样做,通常会在模型中使用导航属性来链接这两个实体。话虽如此,如果它们没有以正常的方式连接,那么这就是你会使用的linq。

from pplReq in PeopleRequirements
from person in People
where pplReq.PeopleId == person.Id
where pplReq.IsActive
select pplReq;

编辑:根据您对导航属性的更新,您可以使用

from pr in _dataContext.PeopleRequirements
where pr.People != null
where pr.IsActive
select pr

这将找到所有活动的并链接到实际人员的人员需求

编辑:在相反的情况下,有附加主动要求的人

from person in _dataContext.Peoples
from req in person.PeopleRequirements
where req.IsActive
select distinct person

我不太确定你是否需要区别。