Linq Where查询选项工作奇怪

时间:2014-02-14 22:25:24

标签: c# sql linq entity-framework

我有一个学校数据库,我写了一个查询,以获得只有5分和4分的学生(美国的A和B)。这是:

var selectGoodStudents = from student in context.Gradebook
                         group student by student.Student_Id into studentsGroup
                         where studentsGroup.All(x => x.Mark == 4 || x.Mark == 5)
                         let goodStudent = studentsGroup.FirstOrDefault()
                         select new 
                         {
                             Name = goodStudent.Student.Name,
                             Surname = goodStudent.Student.Surname,
                             MiddleName = goodStudent.Student.Middle_Name,
                             ClassNumber = goodStudent.Student.Class.Number,
                             ClassLetter = goodStudent.Student.Class.Letter
                         };

它运作良好,但我不明白一件事。如果 where 语句从 studentsGroup.All(x => x.Mark == 4 || x.Mark == 5)获得 true ,我建议) studentsGroup 将被添加到查询结果中。如果错误 - 不是。我的查询符合这个建议。 但是,如果我在where语句中写一个显式构造,就像这样

where studentsGroup.All(x => x.Mark == 4 || x.Mark == 5) == true

查询将从表中获取所有组。如果我写 == false ,查询将无法获得任何内容。我不明白这非常非常

0 个答案:

没有答案