我正在使用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""
providerName="System.Data.EntityClient" />
</connectionStrings>
...
<providers>
<provider invariantName="System.Data.SqlClient"
type="System.Data.Entity.SqlServer.SqlProviderServices,
EntityFramework.SqlServer" />
</providers>
基本上我想将此连接字符串从connectionStrings
部分移动到appSettings
部分,因此我可以使用CloudConfigurationManager将connection string传递给db上下文。为此,我需要正确合并connectionString
和providerName
属性值。
provider
和connectionString
的{{1}}部分是什么?他们是否识别将用于访问数据库的库?在这种情况下,将使用哪一个:this one,that one或另一个?如何在providerName
部分中将连接字符串指定为单个字符串?
我试图只在appSettings
中添加connectionString
属性值,此刻所有内容似乎都正常。但是为什么会有appSettings
属性?
有几个similar questions,但似乎没有一个人完全回答这个问题。
答案 0 :(得分:0)
您不需要 providerName。它只是一段数据,与连接字符串一起说明了连接字符串应该使用的提供程序。它对于可以使用多个提供程序的工具很有用,例如SqlDataSource
控件。无论如何,默认值通常为SqlClient
。最重要的是,如果你不包含它并且一切仍然有效,那么不要担心包含它。