Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

194
Vistas
¿Cómo me dirijo a otra base de datos con tracker-enabled-dbcontext?

Estoy tratando de implementar el paquete tracker-enabled-dbcontext del repositorio de git documentaion y tracker-enabled-dbcontext Pero no puedo cambiar los cambios guardados para apuntar a una base de datos diferente. He modificado mis SaveChanges

 public class MyDBContext : DbContext, IUnitOfWork {} public class MacsAuditDbContext : TrackerEnabledDbContext.TrackerContext {}

en MiContextoDB

 public override int SaveChanges() { DateTime nowAuditDate = DateTime.Now; IEnumerable<System.Data.Entity.Infrastructure.DbEntityEntry<DomainEntity>> changeSet = ChangeTracker.Entries<DomainEntity>(); if (changeSet != null) { foreach (System.Data.Entity.Infrastructure.DbEntityEntry<DomainEntity> entry in changeSet) { switch (entry.State) { case EntityState.Added: entry.Entity.Created = nowAuditDate; entry.Entity.Modified = nowAuditDate; break; case EntityState.Modified: entry.Entity.Modified = nowAuditDate; break; } } } using (MacsAuditDbContext db = new MacsAuditDbContext()) { db.SaveChanges(); } return base.SaveChanges(); }

en mi clase de inicio

 public class Startup { public void Configuration(IAppBuilder app) { AuthConfig.Register(app); GlobalConfiguration.Configuration .UseSqlServerStorage("MacsAuditDbContext"); } }

Pero todavía no puedo guardar los registros de auditoría en la base de datos de destino (secundaria). mi dominio se completa guardando mi base de datos principal pero no los registros de auditoría. ¿Quiero pasar MyDBContext a MacsAuditDbContext? O estoy haciendo algo mal? por favor, ayúdame.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Puede intentar aprovechar el evento OnAuditLogGenerated . Algo así:

 public sealed class MyDBContext : TrackerContext { public MyDBContext () { OnAuditLogGenerated += SaveToAnotherDb; } private void SaveToAnotherDb(object? sender, AuditLogGeneratedEventArgs args) { var auditLog = args.Log; using (MacsAuditDbContext db = new MacsAuditDbContext()) { db.AuditLog.Add(auditLog); db.SaveChanges(); } //skips saving to local database args.SkipSavingLog = true; } protected override void Dispose(bool disposing) { OnAuditLogGenerated -= SaveToAnotherDb; base.Dispose(disposing); } }
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda