2009-08-08 13 views
1

Salut les gars, comment implémentez-vous un Audit Trails sur tous les objets/classes sur SubSonic sous Data Access Layer? Si je veux, toutes les modifications sur tous les objets seront enregistrées sur une seule table/objet.SubSonic 3.0.0.3 | Couche d'accès aux données - Sondages d'audit

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="[email protected]" 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;} 
} 

Répondre

0

Je gère tous mes journaux d'audit directement dans la base de données à l'aide de déclencheurs. Lorsque l'audit n'intervient que pour les modifications provenant du code, si quelqu'un bricole avec les données via une requête SQL directe ou via Management Studio, vous n'avez aucune trace. J'ai également constaté que les configurations basées sur le déclenchement fonctionnent mieux que celles basées sur le code, ce qui ralentit moins les choses. J'utilise une procédure stockée qui crée une table d'audit par table et configure tous les déclencheurs. Cependant, une configuration similaire pourrait pointer vers une seule table d'audit si vous le souhaitez. Une fois la table d'audit existante, vous pouvez en extraire des données via Subsonic.