C# MySql Linq实体日期比较
我尝试在MySql中执行以下操作,但得到一个linq to entities异常,即不支持这些函数。我尝试使用SqlFunctions.DateAdd失败。到目前为止,唯一的解决方案是使用ToList(),但这会让我不喜欢的客户端受益匪浅:C# MySql Linq实体日期比较,c#,mysql,linq,entity-framework,C#,Mysql,Linq,Entity Framework,我尝试在MySql中执行以下操作,但得到一个linq to entities异常,即不支持这些函数。我尝试使用SqlFunctions.DateAdd失败。到目前为止,唯一的解决方案是使用ToList(),但这会让我不喜欢的客户端受益匪浅: var expiredPolcies = context.ApiUsagePolicies .Where(u => DateTime.UtcNow > u.UsagePolicyStart.AddSeconds(u.UsagePeriod
var expiredPolcies = context.ApiUsagePolicies
.Where(u => DateTime.UtcNow > u.UsagePolicyStart.AddSeconds(u.UsagePeriodSeconds));
特定于实体框架和SQL Server
特定于Linq to SQL和SQL Server
如果MySql有一组等效的方法,那么您可以使用它
或者,尝试重写查询,以便不涉及任何本地方法。尝试以下方法:
var expiredPolcies = context.ApiUsagePolicies
.Where(u =>
(DateTime.UtcNow - u.UsagePolicyStart).TotalSeconds > u.UsagePeriodSeconds);
这完全取决于Linq提供程序支持哪些函数