如何在linq中使用规范函数添加小时和分钟

时间:2014-02-26 07:59:16

标签: linq entity-functions

我的linq查询现在,

 return _db.Details
           .FirstOrDefault(c => c.Master.Id.Value == nId && 
                                c.Id == c.Master.Id && 
                                c.Alert.Va <= c.Va && 
                                DateTimeNowc.ValidityTill <= (EntityFunctions.AddHours(DateTime.UtcNow,5) &&
                                EntityFunctions.AddMinutes(DateTime.UtcNow,30)));

ERROR:

DateTime? EntityFunctions.Addminutes(DateTime?timevalue, int? addvalue) (+2 overload(s))

Invokes the canonical Add Minutes function. For Information about the canonical AddMinutes function, see Date and Time canonical Functions(Entity SQL).

这里我得到行错误enter image description here

2 个答案:

答案 0 :(得分:1)

DateTimeNowc.ValidityTill <= (EntityFunctions.AddHours(DateTime.UtcNow, 5) &&
EntityFunctions.AddMinutes(DateTime.UtcNow, 30)));

您尝试在两个&&个实例上执行DateTime。那不行。

您应该在另一个方法中放置一个方法调用:

EntityFunctions.AddMinutes(EntityFunctions.AddHours(DateTime.UtcNow, 5), 30));

答案 1 :(得分:0)

您的比较语法错误。如果您尝试比较时间是&lt; = 5小时30分钟,请尝试仅使用AddMinutes()。

//5*60 minutes + 30 minutes
DateTimeNowc.ValidityTill <= EntityFunctions.AddMinutes(DateTime.UtcNow,330)));