我有这样的代码:
var qry = from d in _dbEntities.DAY
where d.DATE == DateTime.Now.Date
select d;
DAY day = qry.Single();
当我尝试运行它时,它抛出一个NotSupportedException。它应该返回0个结果,因为那里有0个结果,因此应该抛出InvalidOperationException。我在使用query . count()时遇到了同样的问题,据我所知,IQueryable的任何方法都有同样的问题。我查过从查询中获取计数的方法他们都说使用这些方法
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
,而真正的问题是与查询本身。