【问题标题】:SubSonic 3.0.0.3 | Data Access Layer - Audit trails亚音速 3.0.0.3 |数据访问层 - 审计跟踪
【发布时间】:2010-04-29 08:11:01
【问题描述】:

大家好,你们如何在数据访问层下的 SubSonic 上的所有对象/类上实现审计跟踪?

如果我想要的是,所有对象的所有更改都将记录在单个表/对象上。

public class AuditTrail
{
   public int Id { get; set; }
   public string SourceObjectName { get; set; }
   public int RowPK { get; set; } // Id of the SourceObject
   public string ChangeType {get; set;} // value such as "Add", "Update", "Delete"
   public string RowCapture { get; set; } // Id="6" UserId="xxx3" SurName="NoBodyx" FirstName="no3" MiddleName="B." Email="x@x.x3" CreatedDate="8/6/2009 1:57:58 PM" CreatedBy="ca3" UpdatedDate="8/7/2009 5:58:37 AM" UpdatedBy="qqq" Name="no3 B. NoBodyx"
   public CreatedDate {get; set;}
}

【问题讨论】:

    标签: c# subsonic subsonic3


    【解决方案1】:

    我使用触发器直接在数据库中处理我的所有审计跟踪。当审计只发生在来自代码的更改时,如果有人通过直接 SQL 查询或通过 Management Studio 修改数据,您将一无所获。我还发现,基于触发器的设置比基于代码的设置执行得更好,更容易陷入困境。

    我使用存储过程为每个表创建一个审计表并设置所有触发器。但是,如果您愿意,类似的设置可以指向单个审计表。

    一旦审计表存在,您就可以通过 Subsonic 从中提取数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-30
      • 2013-09-23
      • 2014-10-06
      相关资源
      最近更新 更多