【发布时间】:2021-12-11 20:35:46
【问题描述】:
我们使用 EF6 连接 Azure 数据库已有一段时间了。对于此数据库,我们使用特定于 Azure 连接的 ExecutionStrategy 来获得更具弹性的连接:
public class MyDbConfiguration : DbConfiguration
{
public MyDbConfiguration()
{
SetExecutionStrategy("System.Data.SqlClient", () => new SqlAzureExecutionStrategy());
}
}
更多信息请见the microsoft article about connection resilience
然而,最近我们添加了一个到另一个数据库的连接,该数据库驻留在我们想要使用默认执行策略的 MSSQL 数据库服务器上。由于这在同一个应用程序域中运行,我们遇到了一个问题:
在发现“MyDbConfiguration”类型之前,实体框架使用了默认 DbConfiguration 实例。在使用任何实体框架功能之前,必须在应用程序启动时设置“MyDbConfiguration”实例,或者必须在应用程序的配置文件中注册。请参阅http://go.microsoft.com/fwlink/?LinkId=260883 了解更多信息。”
查看错误中链接的文章我看到以下声明:
只为您的应用程序创建一个 DbConfiguration 类。此类指定应用程序域范围的设置。
我已经尝试了几个相关问题的解决方案,但我一直遇到同样的问题。我尝试过的事情基本上归结为通过代码、属性或配置文件以不同的方式设置自定义 DbConfiguration。
我认为解决方案是在不使用自定义 DbConfiguration 的情况下设置执行策略,但我不确定它是否如此,以及我应该如何做到这一点。
【问题讨论】:
标签: c# entity-framework entity-framework-6 azure-sql-database