MySql Linq实体日期比较
问题描述:
我想在MySql中执行以下操作,但得到一个linq-to-instances异常,该函数不受支持。我试过使用SqlFunctions.DateAdd失败。唯一的解决办法,到目前为止是使用ToList(),但是,这一切都带给我不喜欢客户端:MySql Linq实体日期比较
var expiredPolcies = context.ApiUsagePolicies
.Where(u => DateTime.UtcNow > u.UsagePolicyStart.AddSeconds(u.UsagePeriodSeconds));
答
SqlFunctions是特定于实体框架和SQL Server。
SqlMethods特定于Linq到SQL和SQL Server。
如果有一组等效的MySql方法,那么你可以使用它。
或者尝试重写您的查询,以便不涉及本地方法。尝试类似:
var expiredPolcies = context.ApiUsagePolicies
.Where(u =>
(DateTime.UtcNow - u.UsagePolicyStart).TotalSeconds > u.UsagePeriodSeconds);
这一切都取决于您的Linq提供程序支持的功能。