我有带有 EFCore 数据库上下文的 .net 核心应用程序:
public class MyappDbContext : DbContext
{
private ILogger<MyappDbContext> _logger;
public MyappDbContext(DbContextOptions<MyappDbContext> options)
: base(options)
{
// ???
}
}
在启动类中我注册了上下文:
services.AddDbContext<MyappDbContext>(options => options.UseSqlServer(connectionString));
如何注入(inject) MyappDbContext
、ILogger
或 ILoggerFactory
(以创建记录器)?
最佳答案
您需要做的就是向上下文构造函数添加一个ILoggerFactory
或ILogger
参数:
public class MyappDbContext : DbContext
{
private readonly ILogger<MyappDbContext> _logger;
public MyappDbContext(DbContextOptions<MyappDbContext> options,
ILogger<MyappDbContext> logger)
: base(options)
{
_logger = logger;
}
}
关于c# - 如何将 ILogger 注入(inject) EFCore DbContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43518867/