2012-05-24 280 views
0

我在我使用lambda表达式一个EF查询,当我试图让两个日期之间的区别,它抛出异常我日期比较

指定类型的成员“日期”不在LINQ to Entities中受支持。仅支持初始化程序,实体成员和实体导航属性。

我的查询是

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(); 

谁能告诉我如何获得这件事情吧?

回答

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(); 
+0

感谢的人,它的工作。 –

1

在实体框架是recomended使用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();