3

互いに多対多の関係を持つ 2 つのオブジェクトがあります。

データベース ファーストのアプローチで Entity Framework を使用しています。

私のデータベース プロファイラーは、オブジェクト A の 1 つのセットをフェッチするたびに、A の各要素に対してオブジェクト B の他のセットをロードすることを示しています。ナビゲーション プロパティを介して。

オブジェクトにアクセスするコードは、エンティティが私の DbContext である一般的なアプローチを使用します

public virtual IQueryable<T> GetAll()
{
    IQueryable<T> query = entities.Set<T>();
    return query;
}

両方のナビゲーション プロパティが実装されてvirtual ICollection<T>おり、コンストラクターConfiguration.LazyLoadingEnabled = trueで明示的に設定しています。DbContext

私は何かを見逃していますか、それとも間違った方法でアプローチしていますか? ナビゲーション プロパティを削除し、他のクエリを介して必要なものを明示的にロードする必要がありますか?

4

1 に答える 1

0

専門家の前では、私はこれを尋ねるのをためらっています:)しかし、この場合、 DbContext で ProxyCreationEnabled=false を設定しても役に立ちませんか? これがポイントの「初心者」すぎる場合は申し訳ありません

于 2012-05-18T18:51:42.683 に答える