首先是EF代码 - 获取DynamicProxies而不是对象.为什么?

oje*_*jek 4 c# linq entity-framework ef-code-first

我有以下查询:

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

现在,categoryList包含4个项目(我在数据库中有4个类别),但它们都是类型dynamicproxies,而不是(正如我所料)Category.

我究竟做错了什么?

Eri*_*sch 5

你没有做错任何事.EF将您的实体包装在版本跟踪代理中,以便它可以检测对象的更改以及支持延迟加载.

如果要删除代理,可以从上下文中分离对象,也可以通过指定DbContext.Configuration.ProxyCreationEnabledfalse来完全关闭版本跟踪