EF中的动态查询

时间:2015-01-28 11:05:16

标签: entity-framework dynamicquery

我已经在其他问题中搜索了解决方案,但没有找到它。 所以,我的问题如下: 我有一个用户可以挂载表达式的页面。例如,如果他们想要一些课程1和课程2的教授,那么他们会创建一个这样的表达式: 页面中的(course 1 AND course 2)

但是当我使用EF时,如果我把" AND",我就没有教授......如果我改为"或者"我得到一些教授有1或2,其中一个可能有两门课程。

我需要一直有两门课程的教授(课程1和课程2)

我该如何做到这一点?

(如果我的解释太混乱,请告诉我,我会以其他方式尝试!)

2 个答案:

答案 0 :(得分:0)

我试着理解你的解释,尝试下面的内容,让我们知道你正在寻找的逻辑是什么?或者你想要其他结果。

from x in db.professors.Where(x => x. professorId == professorId && (x.courseid == 'course1' && x.ukat == 'course2'))

答案 1 :(得分:0)

也许:

var result = db.Professors.Where(p => 
    p.Cursos.Count(c => searchedCourses.Contains(c.CourseId)) == searchedCourses.Count());

通过这种方式,您可以获得所有教授,过滤他们的课程以匹配指定搜索中的课程,并且只获得具有相同数量的过滤课程和搜索过的课程的教授。