我正在与我们的工程师一起建立一个数据仓库(在SQL Server中),我们几乎可以启动并运行所有东西。我们的主要应用程序还使用SQL Server作为后端,并旨在在使用实体框架时首先成为代码。在大多数表中,我们都添加了诸如updateAt之类的列,以允许增量加载到数据仓库中,但是实体框架创建了一个多对多关联表,我们无法对其进行修改。该表由带有组合键的两个GUID列组成,因此它们像递增的整数或日期一样不可迭代。现在,我们基本上正在寻找有关如何在此表上启用增量加载的选项,但是几乎找不到信息。
搜索了一会儿之后,我主要碰到了一些帖子,这些帖子解释了如何不可能将列(例如updatedAt)手动添加到关联表中,例如此处Create code first, many to many, with additional fields in association table。建议将表分成两个一对多的表。我们希望尽可能避免这种情况。
另一个可能的选择是打开服务器上的更改数据捕获,但这可能会破坏应用程序中代码的初衷。
另一种想法是在数据库本身而不是代码中添加一列,其默认值为当前日期时间。但这也可能是不可能的/与实体框架不兼容,并且违反了代码优先原则。
我们有什么遗漏吗?还有其他解决方案吗?理想的解决方案是代码优先解决方案,或者是ETL流程中的解决方案,而又不会影响基础应用程序,而又不会改变太多。任何建议表示赞赏。