我有一个ASP.NET MVC 4应用程序和SQL Server数据库。我在一个数据库中保存记录,其中我有一个日期时间列DateCreated
。
我需要获得所有昨天的值,但是当我尝试获取它时,我有一个错误。
var model = _orderRepo.GetAll().Where(x => x.DateCreated.Value.ToShortDateString() ==
DateTime.Now.AddDays(-1).ToShortDateString());
错误:
LINQ to Entities无法识别方法' System.String ToShortDateString()'方法,并且此方法无法转换为商店表达式。
有人能帮助我吗?
答案 0 :(得分:2)
试试这个:
var date = DateTime.Now.AddDays(-1);
var model = _orderRepo.GetAll().Where(x => x.DateCreated.Year == date.Year
&& x.DateCreated.Month == date.Month
&& x.DateCreated.Day == date.Day);
答案 1 :(得分:0)
除非我遗漏了什么,否则为什么不:
var model =
_orderRepo.GetAll()
.Where(x => x.DateCreated.Value.Date == DateTime.Today.AddDays(-1)));
作为旁注,请确保您不会查询所有"订单"然后应用过滤器(我怀疑是这种情况),理想情况下,您应该在查询中执行此操作。