SubSonic 3.0.0.3 |数据访问层 - 审计跟踪

时间:2009-08-08 05:36:15

标签: c# subsonic subsonic3

大家好,您如何在数据访问层下的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;}
}

1 个答案:

答案 0 :(得分:0)

我使用触发器直接在数据库中处理所有审计跟踪。当审计仅发生在来自代码的更改时,如果有人通过直接SQL查询或通过Management Studio获取数据,则无法获得任何跟踪。我还发现,基于触发器的设置比基于代码的设置表现更好,使事情变得更少。

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

审核表存在后,您可以通过Subsonic从中提取数据。