获取真实的SelfTracking实体状态,包括导航属性

时间:2011-06-06 15:58:19

标签: wpf entity-framework self-tracking-entities change-tracking object-state

如果对象有未保存的更改,我想更改对象的显示。我以为我可以使用ChangeTracker.State,但如果更改导航属性,则不会更改为已修改。

例如,Contact对象包含电话,地址和电子邮件的导航属性。如果我更改了联系人姓名,状态将更改为已修改但更改电话会使对象的状态保持不变。

2 个答案:

答案 0 :(得分:1)

与单个实体关联的状态不反映对象图的状态。你觉得它应该怎么样?一旦图表中的任何内容发生变化,就会导致所有实体都被修改,因为一切都以某种方式彼此相关。

您可以订阅更改跟踪器的ObjectStateChanging个事件,并收到有关图表更改的通知。

答案 1 :(得分:0)

一切都在ChangeTracker中。

您需要查看:

  • 国家
  • ObjectsAddedToCollection
  • ObjectsRemovedFromCollection
  • OriginalValues

如果您在没有外键ID的情况下生成模型,并且在反序列化STE时实际上没有重新填充策略,您可能还需要查看ExtendedProperties。