我试图将我的连接字符串与App.config
分离开来,由于无法像Web.config
那样进行转换,所以我想使用configSource
属性指向另一个包含连接字符串的配置文件,但它似乎不起作用。
这是App.config
的工作方式:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=*snip*" requirePermission="false" />
</configSections>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="v11.0" />
</parameters>
</defaultConnectionFactory>
</entityFramework>
<connectionStrings>
<add name="DefaultConnection"
providerName="System.Data.SqlClient"
connectionString="Server=*snip*" />
</connectionStrings>
</configuration>
但是这个不行,App.config
:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=*snip*" requirePermission="false" />
</configSections>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="v11.0" />
</parameters>
</defaultConnectionFactory>
</entityFramework>
<connectionStrings configSource="connections.config" />
</configuration>
connections.config
:
<connectionStrings>
<add name="DefaultConnection"
providerName="System.Data.SqlClient"
connectionString="*snip*" />
</connectionStrings>
我正在寻找最简单的解决方案。
有什么想法吗?
.config
文件是否在同一个目录下? - OdedDbContext
,它需要一个连接字符串参数,所以我传递了DefaultConnection。当连接字符串在App.config中定义时,它可以工作,但在单独的文件中定义时则不行。 - Adam K DeanconfigSource
中相对路径正确)。 - Oded{"The type initializer for 'System.Data.Entity.Internal.AppConfig' threw an exception."}
和{"Unable to open configSource file 'connections.config'. (*project directory*\\bin\\Debug\\TestApp.vshost.exe.config line 17)"}
这两个错误信息,这让我想知道它是否没有将其他配置文件复制到构建目录中... - Adam K Dean