c# - 在数据层中获取Azure连接字符串

标签 c# .net azure connection-string .net-4.6.2

很久以前,有人认为在 Web API 的数据层中添加硬编码的连接字符串是个好主意。由于这个遗留问题,我无法删除这个类。该类继承IDbContextFactory,它需要检索一个连接字符串,该字符串现在是硬编码的。为了使其更加动态,我想为此使用 Azure 连接字符串。

1 我将连接字符串添加到应用服务的配置中

2 根据很多网站,我只需添加以下代码即可检索连接字符串:

connectionString = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;

这不起作用;它给出了“未设置对象实例的对象引用”。错误。

其他说你需要添加前缀和环境:

connectionString = Environment.GetEnvironmentVariable("SQLCONNSTR_DefaultConnection");

显然,这也不起作用。是的,我在下拉列表中选择了 sql server。

正如有人建议的那样,我尝试的另一件事是将连接字符串添加到 web.config 中。然后再次;这不起作用。

值得高兴的是,这是 .NET 4.6.2,因此所有适用于 .NET Core 1/2 的完美解决方案都不起作用。

最佳答案

首先,您必须在 web.config 中包含相同的连接字符串,且 connectionString 值为空。然后您可以从应用程序设置部分进行覆盖。

`<connectionStrings>
    <add name="DefaultConnection" connectionString="" />
    <add name="CMSEntities" connectionString="" 
 providerName="System.Data.EntityClient" />
</connectionStrings>`

对于 Entity Framework ,将providerName指定为“System.Data.EntityClient”,并且设置选择自定义而不是SqlServer

关于c# - 在数据层中获取Azure连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55060749/

相关文章:

c# - 一个命名空间在另一个命名空间中找不到类

.net - 删除命名管道 .NET

azure - SQL Azure 合并复制

c# - Application Insights 不记录自定义事件

c# - 如果已添加/更新/删除特定数据库表中的记录,我如何提醒我的程序?

c# - 在方法中更改结构

C# StructLayout/FieldOffset 和数组中的索引

c# - 无法在我的 DataGrid 中使用类型化的 DataRowView

.net - 如何 : set A4 size in a WPF usercontrol?

azure - 如何使用 REST API 启动 Azure VM(已解除分配)