論理的な削除が必要なデータベースには、IsActiveビット列があります。false の場合、レコードが削除済みとしてマークされていることを示します。
IsActive99% の場合、クエリにはtrueに設定されたレコードのみを含める必要があります。Entity Framework 6 では、DefaultExpressionVisitor( を介してIDbCommandTreeInterceptor) カスタムを使用して、テーブルに列が存在するときにこのチェックを自動的に行います。
ただし、ごくまれに、この動作をオーバーライドする必要があります。IQueryable の拡張メソッド、または式ビジターまたはコマンド ツリー インターセプターがチェックできる DbContext の設定を記述する方法はありますか?
私は次のようなことをしたいと思っています
var query = queryable.IncludeInactive().Where(...);
また
_dbContext.IncludeInactive = true;
var query = queryable.Where(...);
_dbContext.IncludeInactive = false;
これを行うときに発生する上記の動作に影響を与えます。
var query = queryable.Where(...);
可能であれば、拡張メソッドルートを希望します。