2012-03-08 77 views
0

我有一個類似下面的上下文類,我想記錄所有數據庫操作在另一個數據庫,在另一個DbContext中使用DbContext?是一個問題?上下文中的實體框架上下文

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在幕後做一個連接。