Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 一对多关系-仅返回子级中的匹配项_Entity Framework_Linq To Entities - Fatal编程技术网

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总是有点奇怪