实体框架where子句

本文关键字:子句 where 框架 实体 | 更新日期: 2023-09-27 18:02:16

我是EF如何在实体框架中使用and - or in where子句的新手

HR_ATTENDANCE_DEVICE_SHUTDOWN_TBL attendanceDeviceShutdownTbl = 
    context.HR_ATTENDANCE_DEVICE_SHUTDOWN_TBL
        .FirstOrDefault(x => x.Device_ID.Equals(model.DeviceId) &&
                             x=>x.Device_Name=model.DeviceName);

上面的代码将不工作,但我怎么能使它工作

实体框架where子句

表达式lambda具有以下语法param => expression。也就是说,它就像一个简单的方法,有输入参数和主体。只定义一次参数,然后在方法体或lambda中使用它们:

HR_ATTENDANCE_DEVICE_SHUTDOWN_TBL attendanceDeviceShutdownTbl = 
    context.HR_ATTENDANCE_DEVICE_SHUTDOWN_TBL.FirstOrDefault(x => 
        x.Device_ID.Equals(model.DeviceId) && x.Device_Name == model.DeviceName);

在这种情况下,您有一个参数x,其中进入匿名函数体。Body是一个表达式,应该返回布尔值,(通常)使用参数x。在这种情况下,lambda主体应该是

x.Device_ID.Equals(model.DeviceId) && x.Device_Name == model.DeviceName

建议阅读:Lambda表达式(c#编程指南)。还要注意==是一个比较运算符。=是一个赋值操作符。别把它们弄混了