0

我有一个查询,它根据两个条件返回真或假。条件之一是检查来自DB 的时间(今天的时间)是否小于或等于5 分钟(即300 秒)。我尝试定义一个 DateTime 格式的变量如下

System.DateTime customDate= new System.DateTime(0000, 00, 00, 0, 00, 300);

这是查询

bool result = (from a in this.db.Samples
               where a.Ping == "Online" 
               && 
              (EntityFunctions.TruncateTime(a.date) - DateTime.Now) <= customDate                 
               select a).Any();

但我有以下错误

运算符“<=”不能应用于“System.TimeSpan?”类型的操作数?和 System.DateTime'

请帮助。

4

1 回答 1

1

DateTime从另一个中减去一个会得到一个TimeSpan. EntityFramework 不支持 DateTime/TimeSpan 算法,因此您必须使用 DiffMinutes 实体函数。(实体函数的完整列表)。

尝试:

bool result = (from a in this.db.Samples
               where a.Ping == "Online" 
               && 
               EntityFunctions.DiffMinutes(EntityFunctions.TruncateTime(a.date), DateTime.Now) <= 5
               select a).Any();
于 2013-07-05T10:13:53.047 回答