LINQ to Entities不识别方法';布尔包含(Int32)';方法

本文关键字:方法 Int32 布尔包 to LINQ Entities 识别 | 更新日期: 2023-09-27 18:25:22

以下异常飞行

LINQ to Entities无法识别方法"布尔"Contains(Int32)'方法,并且此方法无法翻译转换为存储表达式。

在尝试执行以下查询时

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

如何使用studentID列表筛选查询?

LINQ to Entities不识别方法';布尔包含(Int32)';方法

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

var query = context.studentTable.Where(
    BuildContainsExpression<Student, int>(s => s.StudentID, studentIDs));
相关文章: