2010-12-11 3 views
2

多くのリレーションシップを持つエンティティがあります。エンティティに対してEFがクエリを読み込むと、リレーションシップを持つすべてのプロパティ(OK)がロードされます(必要ありません)!EF、すべてのプロパティを読み込まないでください!

これは、すべての関係ではなく、いくつかのプロパティが必要なので、パフォーマンス上の大きなペナルティです。

EFはエンティティのプロパティを読み込んで関係をロードしないでください(EntityCollection<TEnitity>)?

私はロード・リレーションシップのプロパティを手動で作成します。

答えて

3

ナビゲーションプロパティが確実に読み込まれていますか?デフォルトではいけません。 POCOまたはコードファーストを使用していますか?もしそうなら、ナビゲーションプロパティが「仮想」とマークされていることを確認する必要があります。仮想プロパティは遅延ロードされます。

ナビゲーションプロパティが遅延読み込みか読み込み読み込みかどうかを確認するには、SQLプロファイラのようなツールを使用します。

1

JohnnyOは正しいです。 ObjectContextOptions.LazyLoadingEnabledのデフォルト値はfalseです。ただし、データベースからモデルを作成すると、モデルのデフォルト値はtrueになります。生成されたEFクラスを使用している場合は、これをfalseに設定してみてください。

alt text

関連する問題