4

我有以下查询:

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

现在,categoryList包含 4 个项目(我在数据库中有 4 个类别),但它们都是 type 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 回答