繁体   English   中英

实体框架Linq查询中的日期比较

[英]Date Comparison In Entity Framework Linq Query

我试图比较实体框架6 LINQ查询中的日期。

var bookings = context.Bookings.Include("BookingItems").Where(x=>x.IsDeleted == false && DateTime.Compare(DbFunctions.TruncateTime(x.BookingDate).Value,DateTime.Now.Date)==0).ToList();

但是它导致异常:

"The specified type member 'Date' is not supported in LINQ to Entities. Only initializers, entity members, and entity navigation properties are supported."

我只想通过修剪时间部分来比较日期。

有什么建议可以做到这一点?

Linq无法将一些原生的.Net代码翻译成Sql,所以尝试在Linq查询之外使用DateTime.Now函数和其他.Net函数,然后在查询中引用它。

String currentTime = DateTime.Now.ToShortDateString();

var bookings = context.Bookings.Include("BookingItems").Where(x=>x.IsDeleted == false && DateTime.Compare((x.BookingDate).Value.Date,currentTime)==0).ToList();

虽然可能有一些语法错误,但我还没有运行,但无论如何都要尝试

Linq to sql或sql没有实现DateTime.Compare

尝试转换为集合。

var bookings = context.Bookings.Include("BookingItems").ToList().Where(x=>x.IsDeleted == false && DateTime.Compare(DbFunctions.TruncateTime(x.BookingDate).Value,DateTime.Now.Date)==0).ToList();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM