0

假设我有一个带有控制器的 ASP.NET Core 应用程序,该控制器使用DbContext实例作为构造函数参数,遵循标准依赖注入约定。

控制器和DbContext类型都与数据库无关。该应用程序设置其类DbContext中的每个 DI 实例要使用的默认选项。StartUp在运行时的某一时刻,EF Core 将SqlConnection在它判断有必要时实例化一个实例。

我对如何创建此连接实例感兴趣。更具体地说,我想在InfoMessage和上附加事件处理程序StateChange。但是,这必须以不会破坏 EF Core 的正常行为和连接管理的方式完成。

是否有任何服务可以注入(IoC)以便 EF 使用SqlConnection我自己的实例工厂?或者至少有一种方法可以拦截它创建的实例?

4

1 回答 1

1

这个怎么样,来自ef core docs:(在第一条评论后编辑)

public class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {
        SqlConnection connection = GetSqlConnection();
        services.AddDbContext(options => options.UseSqlServer(connection));
    }
}
于 2019-03-05T00:28:42.093 回答