Контекст Entity Framework в контексте - PullRequest
0 голосов
/ 08 марта 2012

у меня есть класс контекста, как показано ниже, я хочу записывать все операции с БД, где другая база данных, используя 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 Ответ

1 голос
/ 08 марта 2012

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

...