2009-06-03 18 views
0

次のlinqクエリを実行すると、サポートされない例外が発生します。任意のアイデアをどのように削除するかLinqと2つの日付の列を比較する

 var declines = from d in _Db.DeclinedSettlementSet 
         where d.STATUS == Status.REPORTED    
         && d.ADD_DATE < d.EDIT_DATE.AddDays(-3) 

答えて

1

(SP1)Microsoftは、エクスプレッションツリーからクライアント側の機能サポートを削除しました。これは、パフォーマンスの向上のために行われています。 シンプルな世界では、どのクライアント側の関数もあなたのケースのように.AddDays(n)に含めることはできません。 Jonの答えについて私はそれがまだTimeSpanがクライアント側の機能でもあるようにはうまくいかないと思います。

+0

これは私が考えていたものですが、今削除された回答では表現できませんでした。 – jfar

+0

それでは、adddays拡張メソッドを使用しない同じ結果を達成するための提案はありますか? – aboutme

+0

正直なところこの時点では何も気にしていませんが、私が今考えているオプションは2つです: Istは初期フィルタリングですべてのレコードを取得します context.DeclinedSettlementSet.Where(k => k.Status == Status.REPORTED && k.AddDate k); これをフィルタリングするビジネスロジックを実行します。 、またはsotreプロシージャを使用してレコードを取得してください。 私は彼らがそのような単純な仕事のための非常に良いオプションではないことを認めます... –