[英]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.