using (var attendanceContext = new AttendanceAppContext())
{
var compareLogin = attendanceContext.Attendances.FirstOrDefault(u =>
u.LoginDate == DateTime.Now.Date &&
u.Employee.Username == user.Username);
代码继续,稍后使用compareLogin变量,但这里抛出一个异常: “LINQ to Entities 不支持指定的类型成员“日期”。仅支持初始值设定项、实体成员和实体导航属性。
请帮助告诉我应该如何比较数据库中的日期。
最佳答案
您可以使用TruncateTime功能:
using (var attendanceContext = new AttendanceAppContext())
{
var compareLogin = attendanceContext.Attendances.FirstOrDefault(u =>
EntityFunctions.TruncateTime(u.LoginDate) == EntityFunctions.TruncateTime(DateTime.Now) &&
u.Employee.Username == user.Username);
}
此外,如果u.LoginDate
是数据库中没有时间的日期,您可以尝试使用DateTime.Today
而不是DateTime.Now.Date
。如果它不起作用,只需将其提取到某个变量中(例如 var Today = DateTime.Today
)并在 LINQ 表达式中使用它。
关于c# - Entity Framework Code First 中的日期比较帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13704049/