2013-07-30 81 views
3

以下例外飞行LINQ到实体无法识别方法“布尔包含(的Int32)”方法

LINQ实体无法识别方法“布尔 包含(的Int32)”方法,和该方法不能将 转换成商店表达式。

试图执行下面的查询

List<int> studentIDs = Common.getFilterStudents(); 
var query = from a in studentTable 
      where studentIDs.Contains(a.StudentID) 
      select a; 

如何过滤使用studentIDs列表查询?

+0

请参阅我编辑的代码,我修改了学生ID的来源 – User2012384

+2

您使用的是哪个版本的实体框架? – takemyoxygen

+0

你完全确定,'studentIDs'的类型是'List '? –

回答

6

这是不可能在你的EF版本使用Contains,因为在EF 4.无论是加入了Contains支持升级EF版本(那么你的代码将没有任何问题的工作),或使用类似manual expression building

var query = context.studentTable.Where(
    BuildContainsExpression<Student, int>(s => s.StudentID, studentIDs)); 
+1

有一种方法可以书写您想要返回的答案。 –

相关问题