具有数据版本控制的 .NET ORM Framework(缓慢变化的维度类型 2)?

.NET ORM Framework with data versioning (Slowly Changing Dimension Type 2)?

我正在构建一个用于插入数据的 .NET 应用程序(实际上是一个 Excel 加载项),我想使用 ORM 来插入数据 具有自动版本控制.

这是一个有效的例子:

我正在寻找一个可以自动处理版本控制的 ORM 框架。 下面是第二次插入后的数据库 table。 熟悉数据库模式的人会将其识别为 "Slowly Changing Dimension (SCD) Type 2"

数据将不是通过 ORM 访问,而是通过各种 SQL 查询访问,因此 valid_from/valid_to 列是必不可少的。 我也知道这可以通过数据库触发器来完成,但我想要一个无论后端如何都能工作的解决方案...

终于找到东西了。

NHibernate 有一个版本控制扩展,Envers。

http://www.primordialcode.com/blog/post/nhibernate-envers-quick-introduction

它将创建最新版本 table 和版本化 table。 它不会将其称为 "Slowly Changing Dimension",但版本控制策略是等效的(而不是为每个度量创建一个 table 到版本)

架构如下。