【问题标题】:Entity Framework: Attaching related objects and other state management实体框架:附加相关对象和其他状态管理
【发布时间】:2011-07-06 18:30:37
【问题描述】:

我有一个使用实体框架代码优先的应用程序。我正在尝试编写我的资源访问层。我有几个对象,它们都有单独的数据库表和很多对象关系。有人可以向我指出具有相关对象的 CRUD 方法的最新示例吗?我发现的所有内容都使用旧版本(我使用 DbContext,而不是 ObjectContext 等),我自己编写时遇到问题。

例如,我目前正在处理一个与其自身具有父子关系的对象。我正在尝试编写 Create 方法。如果我使用context.Objects.Add(newObject),那么所有子对象的状态也会更改为已添加,这意味着添加了重复的子对象。所以我尝试循环遍历所有子节点并将它们附加到上下文中,但是之前不存在的任何子节点都不会添加到数据库中,并且会引发 DbUpdateException。

是否有一种通用方法可以附加所有相关实体并使其状态正确?您能给我的任何帮助将不胜感激。谢谢!

编辑:

我尝试使用Load() 显式加载孩子,然后添加初始对象。不幸的是,它导致了异常,因为父评论在其子列表中包含子,但现有子的 parentID 尚未更新。

【问题讨论】:

    标签: c# entity-framework code-first


    【解决方案1】:

    没有办法附加整个图形并让 EF 自动设置正确的状态 - these problems 自 ObjectContext API 以来没有改变。您必须始终为每个实体和关系手动设置状态,或者您必须从附加实体构建图形。唯一的例外是 Self tracking entities,但 DbContext API 不支持它们。

    【讨论】:

      猜你喜欢
      • 2018-11-20
      • 1970-01-01
      • 1970-01-01
      • 2014-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-28
      • 1970-01-01
      相关资源
      最近更新 更多