2012-04-11 11 views
2

私は以下のことをMySqlで試みていますが、関数がサポートされていないというlinq-to-entities例外が発生します。私は失敗したSqlFunctions.DateAddを使用してみました。唯一の解決策は、これまでのToListメソッド()を使用することですが、それは私が愛していないクライアントにすべてをもたらします:MySql Linq-Entities日付の比較

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

答えて

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プロバイダがサポートする機能によって異なります。