【发布时间】:2012-02-28 15:31:05
【问题描述】:
我想记录使用 Entity Framework 4 对 SQL Azure 数据库所做的所有更改。 但是,到目前为止我还没有找到合适的解决方案..
到目前为止,我可以通过重写 SaveChanges() 并使用 ObjectStateManager 检索所有添加、修改和删除的实体来跟踪所有实体。这工作正常。不幸的是,我似乎无法从关系条目中检索到任何有用的信息。在我们的数据库模型中,我们有一些多对多的关系,我也想记录新的/修改的/删除的条目。
我想将所有更改存储在 Azure 存储中,以便能够跟踪用户所做的更改,并可能回滚到实体的先前版本。
有什么好的方法可以做到这一点吗?
编辑: 我们的场景是托管一个 RESTful WebService,它包含所有业务逻辑并将数据存储在 Azure SQL 数据库中。客户端必须通过 WebService 作为用户进行身份验证,并且我需要存储用户更改数据的信息。
【问题讨论】:
-
SQL Azure 有变更数据捕获吗?
-
@TGnat 根据this page 它没有。
-
@user1165068:你当然可以从 OSM 获得新的/修改的关系。
-
@Craig Stuntz 怎么样?我找不到任何方法来查看哪些外键属于该关系。
-
@user1165068 它们在
ObjectStateManager.GetObjectStateEntries()列表中,就像任何其他实体一样。关系在 EF 中是一等的,这意味着关系本身是实体。
标签: database entity-framework logging entity-framework-4