2012-04-11 75 views
2

我想在MySql中執行以下操作,但得到一個linq-to-instances異常,該函數不受支持。我試過使用SqlFunctions.DateAdd失敗。唯一的解決辦法,到目前爲止是使用ToList(),但是,這一切都帶給我不喜歡客戶端:MySql Linq實體日期比較

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

回答

1

SqlFunctions是特定於實體框架和SQL Server。

SqlMethods特定於Linq到SQL和SQL Server。

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

或者嘗試重寫您的查詢,以便不涉及本地方法。嘗試類似:

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

這一切都取決於您的Linq提供程序支持的功能。