Entity FrameworkのLINQを使用して、2つの日付の間の日数を判断しようとしています。 System.TimeSpanクラスのSubtractが認識されないと言われています
これが私のLINQクエリのwhere部分です。
where ((DateTime.Now.Subtract(vid.CreatedDate).TotalDays < maxAgeInDays))
これは私がVS.NETデバッガで受け取るエラーです。
{"エンティティへのLINQはメソッド 'System.TimeSpan Subtract(System.DateTime)'メソッドを認識しないため、このメソッドをストア式に変換することはできません。
私は何か悪いことをしているのでしょうか、それともエンティティフレームワークの2つのDateTime間の日数を取得するより良い方法はありますか?
マイケルに感謝
これがどうやって動くのか
最も古い日付を表すdatetime変数を定義しました
DateTime oldestDate = DateTime.Now.Subtract(new TimeSpan(maxAgeInDays, 0, 0, 0, 0));
...
それから私はLINQクエリのwhere部分を修正しました
where (vid.CreatedDate >= oldestDate )
魅力的な働きをしました - 式ツリーについて考えさせられたMicahに感謝
この場合は、受け入れられた答えのほうが優れていますが、参考のためにEntityFunctions
クラスを使用して日付などの操作を実行できます。
where (vid.CreatedDate >= EntityFunctions.AddDays(DateTime.Now, -maxAgeInDay))