2012-09-19 29 views
0

我有简单的数据模型Project,Member和ProjectMember,其中Project to Member具有多对多关系。因此ProjectMember表包含这两个外键。限制包含实体中返回的行

我写的代码

var result= db.Projects.Include(p=>p.ProjectMembers).Where(p=>p.ProjectMembers.Any(pm=>pm.DeletedUser==1)); 

,我看到result.ProjectMembers数为2。在这里,我有更多的记录与DeletedUser不等于1

我在这里做错了吗?

什么是result.ProjectMembers

回答

1

您所要求的具有Project,至少有一(=任意)ProjectMember与表达我必须使用获得的唯一一个记录(或多个具有DeletedUser = 1) DeletedUser == 1。满足这个条件。 Project的其他ProjectMember可以具有除DeletedUser以外的任何其他值。

如果你想用ProjectProjectMember s的DeletedUser == 1你应该ProjectMember开始查询:

ProjectMembers.Include("Project").Where(pm => pm.DeletedUser == 1)