[解決済み] 多人数/一人多役の関係でIEnumerableやList<T>ではなくICollectionを使用する理由は何ですか?
質問
チュートリアルでよく見かける、ナビゲーションプロパティが
ICollection<T>
.
これはEntity Frameworkの必須要件なのでしょうか?を使用できますか?
IEnumerable
?
を使用する主な目的は何ですか?
ICollection
の代わりに
IEnumerable
あるいは
List<T>
?
解決方法は?
通常、何を選択するかは、どのメソッドにアクセスする必要があるかによって決まります。一般的には
IEnumerable<>
(MSDN:
http://msdn.microsoft.com/en-us/library/system.collections.ienumerable.aspx
) を使用すると、反復処理だけが必要なオブジェクトのリストになります。
ICollection<>
(MSDN:
http://msdn.microsoft.com/en-us/library/92t2ye13.aspx
) を使って、反復して変更する必要のあるオブジェクトのリストを作成します。
List<>
反復処理、修正、ソートなどが必要なオブジェクトのリスト(一覧はこちらをご覧ください。
http://msdn.microsoft.com/en-us/library/6sh2ey19.aspx
).
より具体的な観点からは、レイジーローディングはタイプの選択と密接に関係しています。デフォルトでは、Entity Frameworkのナビゲーションプロパティは、変更追跡が付属しており、プロキシである。ナビゲーションプロパティとして動的プロキシを作成するために、仮想型である
が必要です。
インプリメント
ICollection
.
リレーションシップの端である "many" を表すナビゲーション プロパティは、ICollection を実装する型を返す必要があります。- POCOプロキシを作成するための要件 <上 MSDN
関連
-
[解決済み] メンバー '<メンバー名>' にインスタンス参照でアクセスできない
-
[解決済み】取り消せないメンバはメソッドのように使えない?
-
[解決済み】C#のequal to演算子でtextとvarcharのデータ型は互換性がない
-
[解決済み] LINQ to Entities クエリでエンティティを構築できません。
-
[解決済み] C#がforeachで変数を再利用するのは理由があるのか?
-
[解決済み] Try-catchは私のコードをスピードアップさせるか?
-
[解決済み] なぜList<T>を継承しないのですか?
-
[解決済み] 特定のプロパティに対するLINQのDistinct()
-
[解決済み] Entity FrameworkとLINQ to SQLの比較
-
[解決済み】IEnumerable vs List - What to Use? どのように動作するのでしょうか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】WebForms UnobtrusiveValidationModeは、jqueryのScriptResourceMappingを必要とする
-
[解決済み] [Entity Framework 4.1でエンティティに関連オブジェクトを追加する際に、エンティティオブジェクトをIEntityChangeTracker.の複数のインスタンスから参照できない。
-
[解決済み] 'SubSonic.Schema .DatabaseColumn' 型のオブジェクトをシリアライズする際に、循環参照が検出されました。
-
[解決済み】ソケットのアドレス(プロトコル/ネットワークアドレス/ポート)は、通常1つしか使用できない?
-
[解決済み】「入力文字列が正しい形式ではありませんでした」エラーの解決方法は?[重複しています]。
-
[解決済み】ORA-01008: すべての変数がバインドされていません。これらはバインドされています。
-
[解決済み】Socket.Selectがエラー "An operation was attempted on something that is not a socket" を返す。
-
[解決済み】EF 5 Enable-Migrations : アセンブリにコンテキストタイプが見つかりませんでした
-
[解決済み】Swashbuckle/Swagger + ASP.Net Core: "Failed to load API definition" (API定義の読み込みに失敗しました
-
[解決済み】Entity FrameworkからのSqlException - セッション内で他のスレッドが動作しているため、新しいトランザクションは許可されません。