2の日付を減算するためのエンティティへのLINQ

datetime entity-framework linq-to-entities

質問

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))


Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ