c# - EF 代码优先 - 获取 DynamicProxies 而不是对象。为什么?

标签 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***/
}

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

我做错了什么?

最佳答案

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

如果你想删除代理,你可以从上下文中分离对象,或者你可以通过指定 DbContext.Configuration.ProxyCreationEnabled false 来完全关闭版本跟踪

关于c# - EF 代码优先 - 获取 DynamicProxies 而不是对象。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12465369/

相关文章:

c# - 从导航属性选择器字符串创建 MemberExpression,C#?

c# - 使用 from 子句求和 (linq)

entity-framework - 使用 postgresql 和 postGIS 的 Entity Framework 中的空间/几何类型

c# - 这两个代码片段是否使用 IQueryable 和 .AsParallel 等效?

c# - 阻止 nCalc 使用 ToUInt16()?

c# - 实现可配置工厂模式

c# - 缓存 asp.net 网页的问题

linq - 从多个版本项目中选择最新项目的 LINQ 是什么?

c# - 在 LINQ 中比较过去的日期

c# - 使用 DI 将参数传递给 DbContext