LINQ to Entities无法识别方法’Boolean Contains(Int32)’方法

以下例外飞行

LINQ to Entities无法识别方法’Boolean Contains(Int32)’方法,并且此方法无法转换为商店表达式。

在尝试执行以下查询时

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

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

在EF版本中不可能使用Contains ,因为在EF 4中添加了对Contains支持。升级您的EF版本(然后您的代码将毫无问题地工作),或者使用类似手动表达式构建的东西:

 var query = context.studentTable.Where( BuildContainsExpression(s => s.StudentID, studentIDs));