我们想为每个实体创建一个历史表。 在给定现有实体的情况下,有没有办法让实体框架自动创建历史实体/表?
例如,Customer
实体将有一个名为CustomerHistory
的影子历史记录表。只要有编辑或删除,旧记录就会插入到历史记录表中。主实体表将始终包含当前记录。
由于我们有几个实体,我宁愿不必为每个实体创建一个单独的历史实体和存储库,从而使实体加倍。
我们希望为所有实体执行此操作,以跟踪实体的事务和状态时间更改。
我们使用工作单元和存储库模式。
假设Entity和EntityHistory
对象的属性是相同的,尽管我们可能希望使用一些日期时间属性扩展历史对象。
我理解如何override DbContext.SaveChanges
in order to write to history/audit tables。
我想避免做的是必须为我们拥有的每个实体创建重复的历史实体/存储库。
我目前正在探索在OnModelCreating
中做一些事情来为每个实体创建一个历史实体,但还没有找到一个好的例子。
有什么想法吗?