为什么实体框架实体主要详细信息实体编辑

时间:2011-06-26 08:44:09

标签: model-view-controller entity repository-pattern entity-framework-4.1

我使用具有存储库和工作单元模式的实体框架来处理MVC项目, 我正在尝试编辑编辑操作中的可变长度集合(主要详细信息),例如此帖http://ivanz.com/2011/06/16/editing-variable-length-reorderable-collections-in-asp-net-mvc-part-1

中的示例

我的问题是每次提交表单编辑操作子集合DB表复制子集合行并将旧的外键设置为null,并成功修改主实体。 我检查主实体的实体状态是否为deatached(子集合也是deatached)。

我已经解决了循环抛出子集合并将其状态更改为已修改或添加或删除的问题,但是我需要知道什么是最好的解决方案,这个问题可以自动检测更改或不将实体状态更改为deatached。 / p>

由于

1 个答案:

答案 0 :(得分:0)

EF上下文不知道您的客户端做了哪些更改,EF没有机制来查找这些更改。处理此方案只有两种方法:

  • 在您知道的情况下手动设置对象图中每个实体的状态(它不是变通方法official solution)。
  • 首先从数据库加载实体图,然后使用TryUpdateModel让MVC按照here所述为您合并新状态和旧状态。