什么是Unchanged状态实体键值

时间:2012-07-23 04:07:44

标签: entity-framework

阅读MSDN Attaching and detaching object

  

对象以Unchanged状态附加到对象上下文。如果我们调用Attach方法。在Unchanged状态下,Entity Framework将实体键值视为final。

什么是“最终”意味着什么?

2 个答案:

答案 0 :(得分:1)

Key值是实体的唯一标识符,一旦附加,就无法更改。实体的所有其他属性在附加后都可以更改。

答案 1 :(得分:1)

处于“未更改”状态的对象意味着与数据库中的状态相比,实体的任何更改的上下文都是无意识

你可以通过这样做人为地错误地进入这种状态(例如):

  1. 使用一个上下文实例从数据库加载实体。
  2. 从第一个上下文实例中删除它。
  3. 更改属性。
  4. 将实体添加到新的上下文实例。
  5. 新的上下文实例将不会意识到实体对数据库中数据的更改,并将所有属性值视为对象的最终状态。

    特别是关于实体键的值,假设键表示当前在数据库中的正确值,因此不会修改/修复键。