This commit is contained in:
@@ -24,33 +24,38 @@ using IRaCIS.Core.Infrastructure;
|
||||
|
||||
namespace IRaCIS.Core.Infra.EFCore
|
||||
{
|
||||
|
||||
public class IRaCISDBScopedFactory : IDbContextFactory<IRaCISDBContext>
|
||||
{
|
||||
|
||||
private readonly IDbContextFactory<IRaCISDBContext> _pooledFactory;
|
||||
private readonly IUserInfo _userInfo;
|
||||
|
||||
public IRaCISDBScopedFactory(IDbContextFactory<IRaCISDBContext> pooledFactory,IUserInfo userInfo)
|
||||
{
|
||||
_pooledFactory = pooledFactory;
|
||||
_userInfo = userInfo;
|
||||
}
|
||||
|
||||
public IRaCISDBContext CreateDbContext()
|
||||
{
|
||||
var context = _pooledFactory.CreateDbContext();
|
||||
context._userInfo = _userInfo;
|
||||
return context;
|
||||
}
|
||||
}
|
||||
|
||||
public class IRaCISDBContext : DbContext
|
||||
{
|
||||
public readonly IUserInfo _userInfo;
|
||||
public IUserInfo _userInfo;
|
||||
|
||||
public readonly ILogger<IRaCISDBContext> _logger;
|
||||
// 在控制台
|
||||
//public static readonly ILoggerFactory MyLoggerFactory = LoggerFactory.Create(builder => { builder.AddConsole(); });
|
||||
// 调试窗口
|
||||
public static readonly ILoggerFactory MyLoggerFactory = LoggerFactory.Create(builder => { builder.AddDebug(); });
|
||||
|
||||
public IRaCISDBContext(DbContextOptions<IRaCISDBContext> options, IUserInfo userInfo, ILogger<IRaCISDBContext> logger
|
||||
public IRaCISDBContext(DbContextOptions<IRaCISDBContext> options, ILogger<IRaCISDBContext> logger
|
||||
|
||||
) : base(options)
|
||||
{
|
||||
_logger= logger;
|
||||
_userInfo = userInfo;
|
||||
|
||||
}
|
||||
|
||||
|
||||
//比数据库上下文构造函数先执行 不能构造函数注入的方式使用配置文件
|
||||
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
|
||||
{
|
||||
optionsBuilder.UseLoggerFactory(MyLoggerFactory);
|
||||
|
||||
optionsBuilder.UseExceptionProcessor();
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user