【问题标题】:EF Core restore complex entityEF Core 还原复杂实体
【发布时间】:2019-09-17 16:18:49
【问题描述】:

我有一个复杂的实体,它包含多个 List 成员,每个成员都包含更多的子列表实体。 我们需要“备份”然后恢复整个对象,因此我们认为将对象序列化为 Json 很容易 - 然后恢复将是一个简单的反序列化回主对象。 这会产生错误,

“无法跟踪实体类型‘MasterObject’的实例,因为已经在跟踪另一个具有与 {‘Id’} 键值相同的实例......”

很明显,它不会将我恢复的对象识别为被跟踪的原始对象。 我们已经尝试分离被跟踪的对象,然后重新连接,并且效果很好;当子列表删除或添加了一些项目时,它无法提供帮助 - 跟踪不会帮助我们在那一刻之后删除项目。 我们可以找出确切的更改,然后单独标记为删除等。但无论如何,我们确实在做 EF 稍后会做的事情,并且有大量的更改需要测试。 我们也试过了

“Context.Entry(myObject).CurrentValues.SetValues(objectFromBackup)”

但删除/添加的子项目也会出现同样的问题。 有没有更好的方法来恢复我们可以尝试的复杂实体?

【问题讨论】:

    标签: json restore ef-core-2.1


    【解决方案1】:

    我们通过在所有需要还原的表上使用序列而不是标识来解决此问题,然后通过 EF 核心删除并重新添加,这似乎可行。 任何其他建议仍然欢迎。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-14
      相关资源
      最近更新 更多