要求似乎很简单:数据变化时,审计变化。
以下是方程中的一些重要部分:
1.我的应用程序中的数据跨越多个表(一些交叉引用表)。
2.我的DTO很深,具有条件填充的导航属性。
3.加载时,我使用其“原始值”复制原始DTO。
4.当请求保存时,原始DTO包含更改。
5.理想情况下,外键将读取像有用的文本而不是ID号码。
与TFS'酷历史功能不同,由于许多相关表和条件子实体,我的历史记录似乎更加复杂。
我看到三种可能性(到目前为止):
1.我可以使用C#反射对象并创建一个之前/之后的记录。
2.我可以在SQL 2008R2中使用触发器捕获更改并合并之前/之后的记录。
3.我可以存储原始的之前/之后的对象,并让SQL 2008R2解析它们。
请注意:现在,对我来说,SQL 2008R2的CDC选项似乎太重了。我确实正在寻找可以构建的东西,但我承认我的思想现在是开放的。
以下是方程中的一些重要部分:
1.我的应用程序中的数据跨越多个表(一些交叉引用表)。
2.我的DTO很深,具有条件填充的导航属性。
3.加载时,我使用其“原始值”复制原始DTO。
4.当请求保存时,原始DTO包含更改。
5.理想情况下,外键将读取像有用的文本而不是ID号码。
与TFS'酷历史功能不同,由于许多相关表和条件子实体,我的历史记录似乎更加复杂。
我看到三种可能性(到目前为止):
1.我可以使用C#反射对象并创建一个之前/之后的记录。
2.我可以在SQL 2008R2中使用触发器捕获更改并合并之前/之后的记录。
3.我可以存储原始的之前/之后的对象,并让SQL 2008R2解析它们。
请注意:现在,对我来说,SQL 2008R2的CDC选项似乎太重了。我确实正在寻找可以构建的东西,但我承认我的思想现在是开放的。
我的问题
在我开始构建之前: 其他人如何处理复杂的EF DTO审计?
是否有一个低技术解决方案可用?
提前感谢。
以下是已经在StackOverflow上提出的相关但不完全相关的问题:使用MVC和Entity Framework实现审计日志/更改历史记录,在SQL Server中创建数据审计,如何审计Entity Framework中的多对多关系,维护跨多个表拆分的实体的审计日志,Linq to SQL审计追踪/审计日志:我应该使用触发器还是doddleaudit?,这些都没有提供答案。