私のコレクションにはBuildings
のコレクションがあります。この時点までに、私が追跡する必要があったすべての建物が活発に発言されています。しかし、解体され、もはや存在しない建物を含める必要性が生じている。 Decommissioned
というnull可能なDateTimeプロパティをBuilding
クラスに追加して、建物がオフラインになったときを追跡することはかなり賢明です。ほとんどの場合、EF DbSetを簡単にフィルタリングする方法はありますか?
私のアプリケーションの大部分は、DbContextからすべての建物のセット全体を取得するだけで、建物をフェッチします。すべてのインスタンスに追加のdbcontext.Buildings.Where(b => b.Decommissioned == null)
チェックを追加するのは苦労でしょう。したがって、IDbSetレベルでのフィルタリングはうまくいくでしょうが、居住者のテナントの履歴をプルアップするような状況では、これらの廃止された建物が必要になります。
質問は主に私の唯一の非退役建物を取得することが、私はdbContext.Buildings
のデフォルトの動作を持つことができるか、つまるところ、まだ私が欲しいんとき、具体的が退役建物を含めるための特別な方法でDBを尋ねますそれら?
https://lostechies.com/jimmybogard/2014/05/29/missing-ef-feature-workarounds-filters/ – haim770
を参照してください。また、インターセプタを見ることもできます。ソフト削除http://www.codeguru.com/ csharp/csharp/soft-deletting-entities-cleanly-using-entity-framework-6-interceptors.htmlを参照してください。 –