2012-03-08 4 views
0

У меня есть класс контекста, как показано ниже, я хочу зарегистрировать всю операцию db, когда другая база данных с использованием DbContext в другом DbContext? Это проблема?Контекст Entity Framework в контексте

public class MyContext : DbContext 
{ 
    public DbSet<SiteUser> SiteUsers { get; set; } 
    public DbSet<SystemLanguage> SystemLanguages { get; set; } 

    public int SaveChanges(string userId) 
    { 
     LogContext logDB = new LogContext(); 

     var entries = this.ChangeTracker.Entries() 
      .Where(p => p.State == EntityState.Added || 
       p.State == EntityState.Deleted || 
       p.State == EntityState.Modified); 

     foreach (var entry in entries) 
     { 
      foreach (AuditLog log in 
       GetAuditRecordsForChange(entry, userId)) 
      { 
       logDB.AuditLogs.Add(log); 
      } 
     } 

     logDB.SaveChanges(); 

     return base.SaveChanges(); 
    } 
} 

ответ

1

Технически это не является проблемой, так как вы можете легко создать подключение к другой базе данных (или даже открыть несколько подключений к одной и той же базе данных), которая является то, что DbContext делает под одеялом.

Смежные вопросы