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