データ永続化の領域では、実際にレコードを削除せずにレコードを「削除」できるように、論理的な削除を実装するのが一般的です。データベースから削除されています。 Entity Framework (EF) でこれを実現するには、DbContext の SaveChanges メソッドをカスタマイズする必要があります。
データを取得するときに論理的に削除されたエンティティをフィルターで除外するという問題に対処するには、EntityFramework.DynamicFilters と呼ばれる強力なライブラリを利用できます。
EntityFramework.DynamicFilters を使用すると、ナビゲーション プロパティなど、クエリの実行時に自動的に適用されるグローバル フィルターの作成が可能になります。論理的に削除されたエンティティのフィルター処理を実装するには、次の手順に従います。
modelBuilder.Filter("IsDeleted", (ISoftDelete d) => d.IsDeleted, false);
このフィルターは、ISoftDelete インターフェイスを実装するエンティティをターゲットとするクエリに WHERE 句を挿入し、IsDeleted が true かどうかを確認します。 filterEnabled パラメーターを false に設定すると、フィルターは取得操作にのみ適用されます。
ISoftDelete インターフェイスでマークされたエンティティ タイプに対してクエリを実行すると、EntityFramework.DynamicFilters は自動的にIsDeleted が true であるエンティティをフィルターで除外します。これにより、追加のフィルタリング基準を手動で指定せずにデータを取得できます。
以上がEntityFramework.DynamicFilters は論理的に削除されたエンティティのフィルターにどのように役立ちますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。