Entity Framework Tutorial AuditDbContext
Définition
AuditDbContext fournit un audit des modifications d'entité pour les entités POCO de Entity Framework. Il vous permet d’implémenter facilement l’audit des modifications sur les entités de votre application.
Au lieu d'utiliser Entity Frameworks DbContext, vous dérivez votre contexte de AuditDbContext, qui écrira automatiquement les enregistrements d'audit de modification dans la base de données pour les types d'audit enregistrés à chaque appel de SaveChanges.
la mise en oeuvre
Implémentez IAuditableEntity sur votre entité ou utilisez la classe de base AuditableEntity.
public class Customer : AuditableEntity { public virtual int CustomerId { get; protected set; } public virtual string CustomerName { get; set; } }
Définissez une entité de l'historique d'audit implémentant IAuditEntity ou utilisez la classe de base AuditEntry.
public class CustomerAudit : AuditEntity { public virtual int CustomerAuditId { get; protected set; } public virtual int CustomerId { get; private set; } public virtual string CustomerName { get; set; } }
Dérivez votre contexte de AuditDbContext.
public class Context : AuditDbContext { public IDbSet<Customer> Customers { get; set; } public IDbSet<CustomerAudit> CustomerAudits { get; set; } public Context(string conn) : base(conn) { } }
Enregistrez les types d'audit soit via app.config. Ajoutez chacune de vos classes auditables avec leur entité d'audit au fichier de configuration.
<configSections> <section name="entityFramework.Audit" type="EntityFramework.Auditing.AuditConfigurationSection, EntityFramework.Auditing" /> </configSections> <entityFramework.Audit> <entities> <add name="EntityFramework.Auditing.Test.Customer, EntityFramework.Auditing.Test" audit="EntityFramework.Auditing.Test.CustomerAudit, EntityFramework.Auditing.Test" /> </entities> </entityFramework.Audit>
Vous pouvez également enregistrer les entités d'audit dans le code à l'aide de la méthode AuditDbContext.RegisterAuditType.
AuditDbContext.RegisterAuditType(typeof(Customer), typeof(CustomerAudit));
Exigences
Version du framework d'entité
- Entity Framework 6.x