GlobalRepository は、プロジェクト内のすべてのリポジトリを置き換える「汎用」リポジトリです。この方法では、1 つの一意のリポジトリを使用するだけで済みます。これは、1 つのリポジトリを維持することを意味します。 GlobalRepository を使用すると、モデルごとに新しいリポジトリを作成してメソッドを定義する必要はありません。追加して使用するだけです。
ご注意ください :
目的はすべてのモデルに対して 1 つのリポジトリを使用することなので、GENERIC ではなく GLOBAL リポジトリと呼びました。つまり、プロジェクト内でグローバルに呼び出します。この場合、大量のコードを避けることができます (もちろん、自由に変更して実装できます)通常の GENERIC リポジトリと同様です)
このメソッドは IQueryable を返します。これにより、最も柔軟性が高く、メモリ内フィルタリングなどとは対照的に効率的なクエリが可能になり、大量の特定のデータ フェッチ メソッドを作成する必要性が軽減されます。一方で、ユーザーにショットガンを与えたことになります。これらは、あなたが意図していないこと (.include() の過剰使用、重いクエリの実行、それぞれの実装でのメモリ内フィルタリングの実行など) を実行する可能性があります。これは、基本的に、階層化と動作制御を回避することになります。フルアクセス。したがって、使用する前に、チーム、その経験、アプリのサイズ、全体的な階層化とアーキテクチャを考慮してください。
このリポジトリには、エンティティが他のエンティティによって使用されるたびにデータベースをチェックする SmartDeletersService も含まれています。メソッドは、それが見つかった場合は True を返し、それ以外の場合は False を返します。
GlobalRepository はどこでも機能します。ファイルをダウンロードしてプロジェクトに追加するだけで、喜んで使用できます :D
覚えておいてください:
PS: 正しく動作するには、モデルは BaseEntity を拡張する必要があります。BaseEntity がどのように見えるかを確認できるようにファイルを追加しました (初心者向け)
何か必要な場合は、[email protected] までご連絡ください。