Entity Framework AuditDbContext
Definition
AuditDbContext bietet eine Entitätsänderungsprüfung für Entity Framework-POCO-Entitäten. Damit können Sie auf einfache Weise Änderungsprüfungen für Ihre Anwendungsentitäten implementieren.
Anstatt Entity Frameworks DbContext zu verwenden, leiten Sie Ihren Kontext von AuditDbContext ab, der automatisch Änderungsprüfsätze für die registrierten Prüfungstypen in die Datenbank schreibt, wenn SaveChanges aufgerufen wird.
Implementierung
Implementieren Sie IAuditableEntity in Ihrer Entität oder verwenden Sie die Basisklasse AuditableEntity.
public class Customer : AuditableEntity
{
public virtual int CustomerId { get; protected set; }
public virtual string CustomerName { get; set; }
}
Definieren Sie eine Prüfprotokollentität, die IAuditEntity implementiert, oder verwenden Sie die AuditEntry-Basisklasse.
public class CustomerAudit : AuditEntity
{
public virtual int CustomerAuditId { get; protected set; }
public virtual int CustomerId { get; private set; }
public virtual string CustomerName { get; set; }
}
Leiten Sie Ihren Kontext von AuditDbContext ab.
public class Context : AuditDbContext
{
public IDbSet<Customer> Customers { get; set; }
public IDbSet<CustomerAudit> CustomerAudits { get; set; }
public Context(string conn)
: base(conn)
{
}
}
Registrieren Sie die Audit-Typen entweder über app.config. Fügen Sie jeder von Ihnen überprüfbaren Klassen mit ihrer Prüfentität zur Konfigurationsdatei hinzu.
<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>
Sie können die Audit-Entitäten auch mithilfe der AuditDbContext.RegisterAuditType-Methode im Code registrieren.
AuditDbContext.RegisterAuditType(typeof(Customer), typeof(CustomerAudit));
Bedarf
Entity Framework-Version
- Entity Framework 6.x