MySql Linq-实体日期比较

时间:2012-04-11 22:08:02

标签: c# mysql linq entity-framework

我正在尝试在MySql中执行以下操作,但获得了不支持这些函数的linq-to-entities异常。我尝试过使用SqlFunctions.DateAdd失败了。到目前为止唯一的解决方案是使用ToList(),但这会将所有内容带到我不喜欢的客户端:

var expiredPolcies = context.ApiUsagePolicies
    .Where(u => DateTime.UtcNow > u.UsagePolicyStart.AddSeconds(u.UsagePeriodSeconds));

1 个答案:

答案 0 :(得分:1)

SqlFunctions特定于Entity Framework和SQL Server。

SqlMethods特定于Linq to SQL和SQL Server。

如果MySql有一套等效的方法,那么你可以使用它。

或者尝试重写您的查询,以便不涉及本地方法。尝试类似:

var expiredPolcies = context.ApiUsagePolicies
    .Where(u => 
        (DateTime.UtcNow - u.UsagePolicyStart).TotalSeconds > u.UsagePeriodSeconds);

这完全取决于您的Linq提供商支持的功能。