【发布时间】:2011-11-17 05:17:15
【问题描述】:
要求似乎很简单:当数据更改时,审核更改。
以下是方程式的一些重要部分:
- 我的应用程序中的数据跨越多个表(一些交叉引用表)。
- 我的 DTO 很深,有条件地填充了导航属性。
- 加载后,我复制原始 DTO 及其“原始值”。
- 请求保存时,原始 DTO 包含更改。
- 理想情况下,外键读起来像有用的文本而不是 ID 号。
与 TFS 的酷历史功能不同,我的似乎更复杂,因为有许多相关的表和条件子实体。
我看到了三种可能性(到目前为止):
- 我可以使用 C# 来反映对象并创建前后记录。
- 我可以使用 SQL 2008R2 中的触发器来捕获更改并合并之前/之后的记录。
- 我可以存储原始的 before/after 对象并让 SQL 2008R2 解析它们。
请注意:现在,在我看来,SQL 2008R2 的 CDC 选项过于繁重。我真的在寻找可以构建的东西,但我承认我现在对任何事情都持开放态度。
我的问题
在我开始构建这个之前: 其他人如何处理审计复杂的 EF DTO?
是否有可用的低(ish)技术解决方案?
提前谢谢你。
StackOverflow 上已有相关但不完全相关的问题:Implementing Audit Log / Change History with MVC & Entity Framework 和 Create Data Audit in SQL Server 和 https://stackoverflow.com/questions/5773419/how-to-audit-many-to-many-relationship-in-entity-framework 和 Maintaining audit log for entities split across multiple tables 和 Linq to SQL Audit Trail / Audit Log: should I use triggers or doddleaudit? 不提供答案。
【问题讨论】:
-
不知道您为什么不将 SQL Server 的本机审核功能列为选项。
-
抱歉@Craig,您对我的 DBA 做出了错误的假设。这完全超出了他们当前的技能范围,并且会给解决方案团队带来一场噩梦(和无休止的延迟),让 IT 部门需要它。这里只是一个现实,这就是我排除它的原因。
-
好吧,即使他们还不知道,但至少记录在案。
标签: c# sql-server entity-framework audit