【发布时间】:2019-07-26 08:01:36
【问题描述】:
假设我有一个 ASP.NET Core 应用程序,其控制器使用 DbContext 实例作为构造函数参数,遵循标准依赖注入约定。
控制器和DbContext 类型都与数据库无关。该应用程序设置了每个 DI DbContext 实例在其 StartUp 类中使用的默认选项。在运行时的某一时刻,EF Core 将在判断有必要时实例化 SqlConnection 的实例。
我对如何创建此连接实例感兴趣。更具体地说,我想在InfoMessage 和StateChange 上附加事件处理程序。但是,这必须以不会破坏 EF Core 的正常行为和连接管理的方式完成。
是否有任何服务可以注入 (IoC) 以便 EF 使用我自己的 SqlConnection 实例工厂?还是有至少一种方法可以拦截它创建的实例?
【问题讨论】:
-
有点不清楚
SqlConenction和实体句柄之间有什么样的联系(我假设InfoMessage是你的实体) -
(SqlConnection)DbContext.Database.Connection? docs.microsoft.com/en-us/dotnet/api/… -
@JessedeWit 不幸的是,这是 EF6。我正在寻找 EFCore 解决方案。
-
这些是实体框架 6.2.0 文档,但我想这对你帮助不大......
标签: c# entity-framework asp.net-core dependency-injection ef-core-2.2