我是EF的新手如何使用和 - 或在实体框架中的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);
上述代码不起作用,但我怎样才能使其正常工作。
答案 0 :(得分:5)
表达式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 body应该是
x.Device_ID.Equals(model.DeviceId) && x.Device_Name == model.DeviceName
建议阅读:Lambda Expressions (C# Programming Guide)。另请注意,==
是比较运算符。 =
是一个赋值运算符。不要与它们混淆。