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

本文关键字:上下文 框架 实体 | 更新日期: 2023-09-27 18:27:12

我有一个上下文类,如下所示,我想记录另一个数据库中的所有数据库操作,在另一个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();
    }
}

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

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