我有一个类似下面的上下文类,我想记录所有数据库操作所在的另一个数据库,在另一个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();
}
}
答案 0 :(得分:1)
从技术上讲,这不是问题,因为您可以轻松地创建与另一个数据库的连接(甚至可以打开到同一数据库的多个连接),这就是DbContext
正在做的事情。