0

问题

启动要插入的新实体(称为“ TargetEntity ”),我正在使用另一个实体属性(称为“ TemplateEntity ”)。

TargetEntity的某些属性正在获取TemplateEntity属性及其导航属性的值。

在某些特殊情况下,我必须对 TemplateEntity 道具和导航道具值进行一些更改。例如假设这是要填充的 TargetEntity:

TargetEntity
- prop1
- prop2
- prop3

这是具有值的 TemplateEntity:

TemplateEntity
- prop1
- NavProp1.prop2
- NavProp2.prop3

我想对 TemplateEntity 应用一些更改,如下所示:

TemplateEntity to be applied
- prop1 * index1
- NavProp1.prop2 * 0
- NavProp2.prop3 *index2

限制和条件

  1. 我正在与实体合作,没有 POCO,没有 DTO。有许多嵌套导航属性,制作它的平面对象或克隆离线嵌套对象非常复杂。

  2. TemplateEntity 正在许多方法中使用。每个方法都有自己的上下文并保存更改(即日志等)。

问题

如何保存更改,并避免像 TemplateEntity 这样的实体及其在 DB 中的导航更改?

4

1 回答 1

0

无法从工作单元中排除/跳过实体更新,除非您:

  • 为该实体重新配置图中的状态 - 这意味着您必须遍历实体图并将所有内容设置为未更改
  • Not include the entity in unit of work in the first place - the entity graph must not be attached to the context - this usually leads to cloning of object graph which is only possible through serialization and deserialization (your entities already support this through DataContractSerializer).
于 2012-07-25T07:21:00.900 回答