linq查询方法全部抛出NotSupportedException

时间:2014-03-18 14:16:56

标签: c# linq

我有这段代码:

    var qry = from d in _dbEntities.DAY
              where d.DATE == DateTime.Now.Date
              select d;
    DAY day = qry.Single();

当我尝试运行它时,它会抛出一个NotSupportedException。它应该返回0结果,因为那里有0,因此应该抛出InvalidOperationException。我在qry.Count()方面遇到了同样的问题,据我所知,IQueryable的任何方法都是如此。我已经找到了从查询中获取计数的方法,他们都说使用这些方法

1 个答案:

答案 0 :(得分:5)

EF可能会尝试将DateTime.Now.Date转换为与提供程序不兼容的表达式。尝试将其变为变量:

var today = DateTime.Now.Date;

var qry = from d in _dbEntities.DAY
          where d.DATE == today
          select d;
DAY day = qry.Single();

您在Single上获得该异常的原因是,在您尝试使用之前,查询实际上并未执行(通过foreachToListCountSingle等)。当真正的问题出现在查询本身时,这会使看起来像问题出现在Single