【问题标题】:How to detect changes in 1 entity framework object如何检测 1 个实体框架对象的变化
【发布时间】:2014-06-19 09:40:02
【问题描述】:

我有一个实体列表,当某些实体发生变化时,我只需执行以下操作:

DBContext.SaveChanges();

所有修改都会保存。

但是现在我必须在某些实体发生更改时执行一些业务逻辑(并且仅针对已更改的实体)并且需要找到那些更改的实体。但我似乎无法做到这一点。

我看到了这个帖子:Entity Framework 5 - Why is Entity State "Modified" after PropertyValue is set back to Original

有人检查.EntityState 属性...。

但是我的实体没有这个属性。

作为最后的手段,我可​​以在我的模型级别上使用 INotifyPropertyChanged,但如果 EF5 能让我知道该实体的状态,那就太好了。

【问题讨论】:

  • 您使用的是实体还是 POCO?就其本质而言,POCO 不会有状态,除非您创建/设置属性来维护状态。但是,您可以设置您的代码,以便您的 POCO 成为代理,在这种情况下,它们将具有状态并且当您的链接变得相关时。我们需要更多信息来提供进一步帮助。此外,如果您有分层架构,请注意跨边界传递代理/实体在分离/序列化等时可能会出现问题。
  • 嗯,......所有模型类+映射都是手动创建的......不确定它是否称为poco,必须查找它。

标签: c# entity-framework entity-framework-5


【解决方案1】:

要检查实体的状态,请使用以下命令:

DbEntityEntry entry = Context.Entry(entity); //where Context is DbContext or derived

// entry.State is available here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-21
    • 2012-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-19
    • 2011-11-26
    相关资源
    最近更新 更多