【发布时间】:2011-07-06 18:30:37
【问题描述】:
我有一个使用实体框架代码优先的应用程序。我正在尝试编写我的资源访问层。我有几个对象,它们都有单独的数据库表和很多对象关系。有人可以向我指出具有相关对象的 CRUD 方法的最新示例吗?我发现的所有内容都使用旧版本(我使用 DbContext,而不是 ObjectContext 等),我自己编写时遇到问题。
例如,我目前正在处理一个与其自身具有父子关系的对象。我正在尝试编写 Create 方法。如果我使用context.Objects.Add(newObject),那么所有子对象的状态也会更改为已添加,这意味着添加了重复的子对象。所以我尝试循环遍历所有子节点并将它们附加到上下文中,但是之前不存在的任何子节点都不会添加到数据库中,并且会引发 DbUpdateException。
是否有一种通用方法可以附加所有相关实体并使其状态正确?您能给我的任何帮助将不胜感激。谢谢!
编辑:
我尝试使用Load() 显式加载孩子,然后添加初始对象。不幸的是,它导致了异常,因为父评论在其子列表中包含子,但现有子的 parentID 尚未更新。
【问题讨论】:
标签: c# entity-framework code-first