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不支持指定的类型成员'Date'。仅支持初始化程序,实体成员和实体导航属性。
请帮忙告诉我如何比较数据库中的日期。
答案 0 :(得分:2)
您可以使用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表达式中使用它。
答案 1 :(得分:0)
将代码更改为:
var compareLogin = (from a in attendanceContext.Attendances.FirstOrDefault
where a.LoginDate == DateTime.Now.Date && a.Employee.Username == user.Username
select a).ToList();