我有以下查询:

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/

10-14 03:02