2012-03-08 80 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在幕后做一个连接。