Entity framework 一对多关系-仅返回子级中的匹配项
我在学生表和课程表之间有一对多关系。我想返回所有的学生,他们的课程符合一定的标准Entity framework 一对多关系-仅返回子级中的匹配项,entity-framework,linq-to-entities,Entity Framework,Linq To Entities,我在学生表和课程表之间有一对多关系。我想返回所有的学生,他们的课程符合一定的标准 .Context.Users.Where(it => it.Category.Description == "Student" && it.Courses.All(p => p.Submitted == true && p.StatusId == null) &&am
.Context.Users.Where(it =>
it.Category.Description == "Student" &&
it.Courses.All(p => p.Submitted == true && p.StatusId == null) &&
it.Courses.Count > 0);
现在这个很好用;如果我删除“it.Courses.Count>0”,那么我会得到没有课程的匹配学生。没有伯爵,有没有更好的办法
谢谢
Dale您可以通过将
it.Courses.Count>0
替换为
it.Courses.Any()
它询问集合是否有“any”元素(至少一个),并将其转换为SQL中的
存在。您可以通过将it.Courses.Count>0
替换为
it.Courses.Any()
它询问集合是否有“any”元素(至少一个),并在SQL中转换为存在
Context.Users.Where(it =>
it.Category.Description == "Student" &&
it.Courses.Any(p => p.Submitted == true && p.StatusId == null))
看起来你想要这样的东西
Context.Users.Where(it =>
it.Category.Description == "Student" &&
it.Courses.Any(p => p.Submitted == true && p.StatusId == null))
这也将返回未提交课程的学生(只要他们提交了任何其他课程)。这是另一个查询,结果不同。这也会返回未提交课程的学生(只要他们提交了任何其他课程)。这是另一个具有不同结果的查询。感谢您的输入,我将使用此方法。尝试将T-SQL中的操作转换为LinqThanks作为输入总是有点奇怪,我将使用这种方法。尝试将T-SQL中的操作转换为Linq总是有点奇怪