c# - Entity Framework Code First 中的日期比较帮助

标签 c# .net entity-framework

    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/

相关文章:

c# - 在 C# 中绘制到新的 "layer"

C# 获取给定路径的文件夹深度的最佳方法?

C# .Net 向导控件删除动态添加的用户控件

c# - 在指定日期删除记录 ASP.NET MVC

c# - 在 Windows 移动设备上调试时,如何阻止 Visual C# 2005 崩溃?

javascript - aspx 控件中的客户端 onkeyup

c# - 奇怪的突然错误 "The number of bytes to be written is greater than the specified ContentLength"

c# - 如何在 LINQ 查询中分组和排序

.net - IQueryable 的 Linq Count() 与 IEnumerable 的 Linq Count()

c# - 提高 XmlSerializer 的性能