質問: false`を必要としたくありません。
回答: **免責事項** :私はEntity Framework Plusプロジェクトのオーナーです @Ademリンクのように、私たちのライブラリはクエリフィルタリングをサポートしています。 グローバル/インスタンスフィルタを簡単に有効/無効にすることができます ``` QueryFilterManager.Filter(q => q.Where(x => !x.IsDeleted)); ``` Wiki: EFクエリフィルタ **編集** :回答のサブ質問 > このことがシーンの背後でどのように機能するかを説明するためのケア? > > まず、フィルタをグローバルに初期化するか、インスタンスごとに初期化するか ``` // Filter by global configuration QueryFilterManager.Filter(q => q.Where(x => x.IsActive)); var ctx = new EntitiesContext(); // TIP: You can also add this line in EntitiesContext constructor instead QueryFilterManager.InitilizeGlobalFilter(ctx); // Filter by instance configuration var ctx = new EntitiesContext(); ctx.Filter(MyEnum.EnumValue, q => q.Where(x => !x.IsSoftDeleted)).Disable(); ``` このライブラリでは、ライブラリはコンテキストのすべてのDbSetをループし、フィルタをジェネリック型に適用できるかどうかをチェックします。 この場合、ライブラリは、フィルタを使用してDbSetから元の/フィルタを適用したクエリをフィルタ処理し、新しいフィルタされたクエリの現在の内部クエリを変更します。 要約すると、フィルタ処理されたクエリを使用するために、一部のDbSet内部値を変更しました。 どのように動作するかを知りたい場合は、コードは**フリー** & **オープンソース**です。 **編集** :回答のサブ質問 > @jonathanはこのフィルタにナビゲーションコレクションも含めますか? > > EF Coreの場合、Interceptorはまだ使用できないため、まだサポートされていません。しかし、EF Core 2.xから始めて、EFチームはこれを可能にするグローバルクエリフィルタを実装しました。