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提供程序支持的功能。