我有这段代码:
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的任何方法都是如此。我已经找到了从查询中获取计数的方法,他们都说使用这些方法
答案 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
上获得该异常的原因是,在您尝试使用之前,查询实际上并未执行(通过foreach
,ToList
,Count
,Single
等)。当真正的问题出现在查询本身时,这会使看起来像问题出现在Single
。