上下文中的实体框架上下文

时间:2012-03-08 11:13:50

标签: c# .net entity-framework entity-framework-4

我有一个类似下面的上下文类,我想记录所有数据库操作所在的另一个数据库,在另一个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 个答案:

答案 0 :(得分:1)

从技术上讲,这不是问题,因为您可以轻松地创建与另一个数据库的连接(甚至可以打开到同一数据库的多个连接),这就是DbContext正在做的事情。