我有一个EF查询,其中我正在使用lambda表达式,当我尝试获取两个日期之间的差异时,它会抛出异常
LINQ to Entities不支持指定的类型成员“Date”。仅支持初始化程序,实体成员和实体导航属性。
我的查询是
var unApprovedLeaves = db.Leaves.Where(l => l.Status.Id == 1 && ((System.DateTime.Now.Date - l.ToDate.Date).TotalDays)==0)
.Include("Employee")
.Include("Employee.Manager")
.ToList();
任何人都可以告诉我,我该如何做到这一点?
答案 0 :(得分:4)
您必须使用SqlFunctions
中的System.Data.Objects.SqlClient
帮助器。试试这个:
var today = DateTime.Now.Date;
var unApprovedLeaves = db.Leaves.Where(l => l.Status.Id == 1 &&
(SqlFunctions.DateDiff("day", today, l.ToDate))==0)
.Include("Employee")
.Include("Employee.Manager")
.ToList();
答案 1 :(得分:1)
在实体框架中,建议使用DbFunctions
System.Data.Entity
帮助程序
试试这个:
var today = DateTime.Now.Date;
var unApprovedLeaves = db.Leaves.Where(l => l.Status.Id == 1 &&
(DbFUnction.DiffDays(today, l.ToDate))==0)
.Include("Employee")
.Include("Employee.Manager")
.ToList();