4

次のクエリがあります:

using (var forumsDb = new ForumsDb())
{
   forumsDb.Configuration.LazyLoadingEnabled = false;
   var categoryList = forumsDb.Categories.Select(c => c).ToList();
   /***some code here***/
}

現在、categoryList4つのアイテムが含まれています(データベースに4つのカテゴリがあります)が、それらはすべてタイプdynamicproxiesであり、(予想どおり)ではありませんCategory

私は何が間違っているのですか?

4

2 に答える 2

5

あなたは何も悪いことをしていません。EFは、エンティティをバージョン追跡プロキシでラップして、オブジェクトへの変更を検出し、遅延読み込みをサポートできるようにします。

DbContext.Configuration.ProxyCreationEnabledプロキシを削除する場合は、オブジェクトをコンテキストから切り離すか、 falseを指定してバージョン追跡を完全にオフにすることができます

于 2012-09-17T18:52:52.683 に答える
1

動的プロキシは、オブジェクトの周囲に自動的に作成されるラッパーであり、変更の追跡を処理して、SaveChangesの実行時に正しいオブジェクトが確実に保存されるようにします。

オブジェクト(この場合)から継承しCategory、対応するオブジェクトとして使用できます。

于 2012-09-17T18:52:27.580 に答える