Entity Framework Core で多対多/1 対多の関係に ICollection を実装する理由
Entity Framework のチュートリアルでは、ICollection を使用します。多対多または 1 対多の関係を表すナビゲーション プロパティのタイプとして。この選択の背後にある理論的根拠を探ると、次のような疑問が生じます。
ICollection は ICollection ですか? Entity Framework Core には必須ですか?
いいえ、ICollection Entity Framework Core の厳密な要件ではありません。代わりに、適切なインターフェイスは使用目的に応じて異なります。
-
IEnumerable: オブジェクトのシーケンスを反復処理できます。読み取りのみが必要なシナリオに適しています。
-
ICollection: 反復と変更をサポートしているため、更新が必要なコレクションに最適です。
-
List: 特殊な ICollection並べ替え、インデックス付け、直接変更などの追加機能を提供する実装です。
ICollection を使用する目的
Entity Framework Core のコンテキストでは、ICollection
;T>遅延読み込みにより、多対多/1 対多のリレーションシップにとって重要な役割を果たします:
- デフォルトでは、ナビゲーション プロパティは動的にプロキシされ、リレーションシップの「多」端が必要です。
- この仮想型は、変更の追跡を有効にし、ナビゲーション プロパティをプロキシし、行われた変更が Entity Framework によって自動的に追跡および保持されるようにします。 Core.
要約すると、ICollection
すべてのシナリオに必須ではありませんが、Entity Framework Core の多対多/1 対多の関係内で遅延読み込みを有効にするためには不可欠です。適切なインターフェイスの選択は、基になるコレクションへのアクセス、変更、永続化に関する特定の要件によって異なります。以上がEF Core の多対多/1 対多の関係に ICollection を使用する必要があるのはどのような場合ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。