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

时间:2019-03-08 09:58:48

标签: 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的所有漂亮解决方案都无法使用。

1 个答案:

答案 0 :(得分:0)

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

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

对于实体框架,将providerName指定为“ System.Data.EntityClient”,设置选择 Custom 而不是SqlServer