Linq EF查询中的日期比较

Linq EF查询中的日期比较,linq,entity-framework-4,Linq,Entity Framework 4,我有一个EF查询,其中我使用lambda表达式,当我试图获取两个日期之间的差异时,它抛出异常 LINQ to实体中不支持指定的类型成员“日期”。仅支持初始值设定项、实体成员和实体导航属性 我的问题是 var unApprovedLeaves = db.Leaves.Where(l => l.Status.Id == 1 && ((System.DateTime.Now.Date - l.ToDate.Date).TotalDays)==0) .Include("Em

我有一个EF查询,其中我使用lambda表达式,当我试图获取两个日期之间的差异时,它抛出异常

LINQ to实体中不支持指定的类型成员“日期”。仅支持初始值设定项、实体成员和实体导航属性

我的问题是

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

有人能告诉我如何正确处理这件事吗?

您必须使用
System.Data.Objects.SqlClient
中的
SqlFunctions
helper。试试这个:

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

您必须使用
System.Data.Objects.SqlClient
中的
SqlFunctions
帮助程序。试试这个:

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

在实体框架中,建议使用
System.Data.Entity

试试这个:

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

在实体框架中,建议使用
System.Data.Entity

试试这个:

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