MySql Linq-Entities Date Comparison

本文关键字:Comparison Date Linq-Entities MySql | 更新日期: 2023-09-27 18:31:00

我正在尝试在MySql中执行以下操作,但得到一个不支持函数的linq到实体异常。我尝试使用SqlFunctions.DateAdd失败。到目前为止,唯一的解决方案是使用 ToList(),但这会将这一切带给我不喜欢的客户端:

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

MySql Linq-Entities Date Comparison

SqlFunctions 特定于实体框架和 SQL Server。

SqlMethods 特定于 Linq to SQL 和 SQL Server。

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

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

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

这完全取决于您的 Linq 提供程序支持哪些功能。