c# - 如何将 ILogger 注入(inject) EFCore DbContext

标签 c# dependency-injection entity-framework-core

我有带有 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) MyappDbContextILoggerILoggerFactory(以创建记录器)?

最佳答案

您需要做的就是向上下文构造函数添加一个ILoggerFactoryILogger 参数:

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/

相关文章:

c#接口(interface)依赖注入(inject)错误

android - 尝试使用 koin 但在 android 上无法正常工作

c# - EF Core 2.1 进行多个数据库调用

c# - EF Core 选择有条件的对象

c# - 是否可以静态访问当前 Controller ?

c# - 更新 ListBox 的 DisplayMember

c# - 服务崩溃的异常代码是什么?

c# - 如何使用属性路由使用自定义路由?

c# - 混合在实际实现和模拟中是一种测试气味吗?

asp.net-mvc - EF Core 将具有 null 属性的实体从外键检索到同一模型