如何从昨天获取数据

时间:2014-07-17 07:14:33

标签: c# asp.net sql linq asp.net-mvc-4

我有一个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()'方法,并且此方法无法转换为商店表达式。

有人能帮助我吗?

2 个答案:

答案 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)));

作为旁注,请确保您不会查询所有"订单"然后应用过滤器(我怀疑是这种情况),理想情况下,您应该在查询中执行此操作。