【问题标题】:Is it possible to SaveChanges except an entity?除实体外是否可以保存更改?
【发布时间】:2012-07-23 13:45:49
【问题描述】:

问题

初始化一个新实体(称之为“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 中的导航更改?

【问题讨论】:

    标签: c# entity-framework entity-framework-4 data-access-layer


    【解决方案1】:

    不可能从工作单元中排除/跳过实体更新,除非您:

    • 为该实体重新配置图中的状态 - 这意味着您必须遍历实体图并将所有内容设置为不变
    • 首先不包括工作单元中的实体 - 实体图不得附加到上下文 - 这通常会导致对象图的克隆,这只能通过序列化和反序列化(您的实体已经通过DataContractSerializer)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-23
      • 2020-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-29
      相关资源
      最近更新 更多