2013-02-09 8 views
6

の効果はありませんエンティティフレームワーク(v4)エンティティのバーチャルナビゲーションプロパティのマーキング?エンティティフレームワークの仮想プロパティ

遅延読み込みを使用せず、読み込みが適切に行われない場合、読み込まれていないプロパティにアクセスするとどうなりますか?

遅延読み込み以外の影響がありますか、または仮想ナビゲーションプロパティを必要とする主な機能ですか?

答えて

7

2つの効果があります。 1つは遅延ロードであり、プロパティがvirtualでない場合は機能しません。しかし、怠惰なローディングはいつもあなたが望むものではありません。

第2は変化検出です。純粋なPOCOを使用している場合、またはプロキシを使用していてもプロパティーをvirtualにしない場合、変更の検出がより複雑になります。

変更検出hereについて詳しく知ることができます。

0

Deferred LoadingがPOCOオブジェクトでサポートされているかどうか疑問に思うなら、POCOでDeferred Loadingを取得できることを知ってうれしいと思います。

  1. では、仮想としてレイジーロードしたいプロパティを宣言します。

    あなたはPOCOエンティティと繰延ロードのサポートを得るために行う必要がある二つのことがあります。これらのプロパティは、ICollectionを実装する任意のコレクション型でも、1/0..1の関係を表す参照でもかまいません。

MSDN's "POCO in the Entity Framework" postを参照してください

  • は、文脈上の据え置き読み込みを有効にします。

  • 関連する問題