【问题标题】:Is the activerecord pattern built into Entity Framework 4.0?Entity Framework 4.0 中是否内置了 activerecord 模式?
【发布时间】:2010-10-25 00:09:05
【问题描述】:
过去我使用了 Sub Sonic,它在框架中加入了 activerecord 模式。使用 Sub Sonic 很容易在更新中找到“脏”字段。我现在需要在我的应用程序中创建一个使用 Entity Framework 4 的审计表。在 EF 4 中是否有类似的功能会给我脏字段?
感谢您的帮助!
【问题讨论】:
标签:
entity-framework
activerecord
entity-framework-4
subsonic3
design-patterns
【解决方案1】:
您可以通过 MSDN 上此页面中描述的功能获得类似的功能:
Identity Resolution, State Management, and Change Tracking
更改跟踪 -> 更改跟踪
对象图的信息是
存储在 ObjectStateEntry 对象中,
由 ObjectContext 创建
对于每个附加对象。
ObjectStateEntry 对象存储
以下信息为
实体:
...
被修改实体的名称
属性。
实体状态 -> 对象上下文必须知道对象的状态才能
将更改保存回数据源。
ObjectStateEntry 对象存储
实体状态信息。这
SaveChanges 方法
ObjectContext 处理实体
附加到上下文并更新
数据源取决于
每个对象的 EntityState。更多
信息,请参阅创建、添加、
修改和删除对象。这
下表显示了可能的
对象的状态。
对象上下文中的对象状态由 ObjectStateManager 管理。若要找出对象的状态,请调用以下 ObjectStateManager 方法之一:TryGetObjectStateEntry、GetObjectStateEntry 或 GetObjectStateEntries。 ObjectStateEntry 的 State 属性定义了对象的状态。
查看这篇文章了解更多信息:
What's New and Cool in Entity Framework 4.0