用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);
在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
我不太确定你是否需要区别。