我正在尝试在MySql中执行以下操作,但获得了不支持这些函数的linq-to-entities异常。我尝试过使用SqlFunctions.DateAdd失败了。到目前为止唯一的解决方案是使用ToList(),但这会将所有内容带到我不喜欢的客户端:
var expiredPolcies = context.ApiUsagePolicies
.Where(u => DateTime.UtcNow > u.UsagePolicyStart.AddSeconds(u.UsagePeriodSeconds));
答案 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提供商支持的功能。