【问题标题】:Logging changes through Entity Framework通过实体框架记录更改
【发布时间】:2017-09-11 02:02:05
【问题描述】:

谁能指导我在我的实体框架模型中实施变更跟踪的好策略?

我有大约 20 个实体来跟踪更改(通过外观/工作单元访问),我需要能够在 UI 中显示记录时显示谁更改了哪些内容。

我知道有 Context.OnSavingChanges(或其他任何名称),但我可能想访问查询中的更改,例如 context.MyEntity.ChangeLog

我必须创建一个 ChangeLog 实体,为所有实体添加关联还是通过 savechanges 有更好的方法?

理查德

附:周末愉快!

【问题讨论】:

    标签: entity-framework entity-framework-4


    【解决方案1】:

    实体框架是 ORM = API,负责持久化和从数据库加载。您坚持或加载的内容完全取决于您,因此如果您想要更改跟踪,您必须对其进行编码。

    最常见的方法确实是使用OnSavingChanges 或覆盖SaveChanges,因为您通常保存由单个用户执行的更改。

    【讨论】:

      【解决方案2】:

      一个老问题,但对于任何想要在 EF >= 6 或 EF Core 上进行审计更改的人来说,我在一个开源库 Audit.EntityFramework 上工作,你可以试试。

      【讨论】:

        【解决方案3】:

        请参阅FrameLog,这是我为此目的编写的一个开源库。您从 SaveChanges 调用它,它会处理其余部分,包括为您提供用于查询日志的强类型 API。

        【讨论】:

        • 我很想知道为什么投反对票,所以我可以改进我的答案。
        猜你喜欢
        • 2021-09-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多