【问题标题】:Nested relationships never end entity framework嵌套关系永远不会结束实体框架
【发布时间】:2015-01-11 16:24:04
【问题描述】:

我有 3 个表:Courses、Departments 和 Universities。

当我从数据库中提取信息(使用实体框架)时,我正在尝试将课程映射到 CourseDTO。我正在尝试以 CourseDTO 自动检查关系是否存在(不为空),然后在 DTO 中连接关系的方式进行设置。

问题是一旦我运行:

db.Courses.Include(c=>c.Department).Include(c=>c.University)

它映射这些关系的每个嵌套排列,因此我到 DTO 的自动映射只会创建一个 stackoverflow,因为它会永远持续下去。 (例如,Course maps the Department 映射该系中的 Courses,映射 Department 等)

避免这个问题的最佳解决方案是什么?

【问题讨论】:

    标签: c# asp.net asp.net-mvc entity-framework asp.net-web-api


    【解决方案1】:

    我建议通过

    关闭 EntityFramework 的延迟加载
    context.Configuration.LazyLoadingEnabled = false
    

    这将防止您未明确包含的子对象在访问时被实体框架扩展。

    或者创建自定义映射方法以仅在 DTO 中包含您想要的对象。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-05-17
      • 2013-04-09
      • 2010-12-27
      • 1970-01-01
      • 1970-01-01
      • 2021-08-05
      • 2011-01-20
      相关资源
      最近更新 更多