如何将EF6.1连接字符串从connectionStrings移动到appSettings配置文件部分?

时间:2015-04-17 14:35:56

标签: c# .net sql-server entity-framework

我正在使用Entity Framework 6.1.3,DB-first方法和SQL Server。在模型生成之后,Entity Framework在我的项目app.config文件中包含以下方式的连接字符串:

<connectionStrings>
    <add name="MyEntities" connectionString="metadata=res:...
         provider=System.Data.SqlClient;...App=EntityFramework&quot;" 
         providerName="System.Data.EntityClient" />
</connectionStrings>
...
<providers>      
    <provider invariantName="System.Data.SqlClient" 
              type="System.Data.Entity.SqlServer.SqlProviderServices,
              EntityFramework.SqlServer" />
</providers>

基本上我想将此连接字符串从connectionStrings部分移动到appSettings部分,因此我可以使用CloudConfigurationManagerconnection string传递给db上下文。为此,我需要正确合并connectionStringproviderName属性值。

providerconnectionString的{​​{1}}部分是什么?他们是否识别将用于访问数据库的库?在这种情况下,将使用哪一个:this onethat one或另一个?如何在providerName部分中将连接字符串指定为单个字符串?

我试图只在appSettings中添加connectionString属性值,此刻所有内容似乎都正常。但是为什么会有appSettings属性?

有几个similar questions,但似乎没有一个人完全回答这个问题。

1 个答案:

答案 0 :(得分:0)

不需要 providerName。它只是一段数据,与连接字符串一起说明了连接字符串应该使用的提供程序。它对于可以使用多个提供程序的工具很有用,例如SqlDataSource控件。无论如何,默认值通常为SqlClient。最重要的是,如果你不包含它并且一切仍然有效,那么不要担心包含它。