在我的数据库中我有表Courses
,每个课程都包含Faculties
的列表。
使用LINQ我需要获得所有具有指定教师身份的教师的课程。
我正在尝试做类似的事情:
var courses = dc.Courses.Include("ClassTimes").Where(course => course.Facultys.Where(fac => fac.Id == currentFacultyId));
但它不起作用......我很确定应该有另一个为此目的创建的LINQ api,我只需要有人指点我。
谢谢
答案 0 :(得分:3)
您可以使用.Any()
来实现这一目标:
var courses = dc.Courses
.Include("ClassTimes")
.Where(course => course.Facultys.Any(fac => fac.Id == currentFacultyId));
答案 1 :(得分:1)
使用.Contains()
:
var courses = dc.Courses.Include("ClassTimes").Where(course => course.Facultys.Contains(fac => fac.Id == currentFacultyId));
<强>解释强>
Contains
将解决此问题,因为Where
表达式需要为集合中的每个项返回一个布尔答案。
Where
- 返回与给定条件匹配的项目。
Contains
- 返回boolean集合是否包含与给定条件匹配的项目。