我有以下查询:
using (var forumsDb = new ForumsDb())
{
forumsDb.Configuration.LazyLoadingEnabled = false;
var categoryList = forumsDb.Categories.Select(c => c).ToList();
/***some code here***/
}
现在,
categoryList
包含 4 个项目(我在数据库中有 4 个类别),但它们都是 dynamicproxies
类型,而不是(正如我所期望的) Category
。我究竟做错了什么?
最佳答案
你没有做错任何事。 EF 将您的实体包装在版本跟踪代理中,以便它可以检测您的对象的更改并支持延迟加载。
如果要删除代理,可以从上下文中分离对象,或者可以通过指定 DbContext.Configuration.ProxyCreationEnabled
false 来完全关闭版本跟踪
关于c# - EF 代码优先 - 获取 DynamicProxies 而不是对象。为什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12465369/