我的项目使用Entity Framework 6 Database First
作为DAL,并且需要在每个项目的配置文件中都有connectionString
。
由于我在解决方案中有多个项目,我发现如果我需要修改连接字符串可能会出现问题,我需要检查每个配置文件。
所以我提出了一个想法,在解决方案目录下创建一个 Share 配置文件 结构:
+ Solution
- CommonConfig
- Share.Debug.config
- Share.Release.config
- Project1
- web.config
- web.Debug.config
- web.Release.config
- Share.Debug.config (Add with Link)
- Share.Release.config (Add with Link)
- Project2
...
我已将connectionString
部分移至Share.xxx.config
<connectionStrings>
<add name="db" connectionString="..." />
</connectionStrings>
首先使用configSource
进行测试,它可以正常运行
<?xml version="1.0" encoding="utf-8"?>
<configuration>
...
<connectionStrings configSource="bin\Share.Debug.config"/>
...
</configuration>
然后我删除了connectionString
的整个部分
并修改web.Debug.config
<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<connectionStrings configSource="bin\Share.Debug.config" xdt:Transform="InsertIfMissing" />
<system.web>
</system.web>
</configuration>
但它不起作用,EF无法使用此设置找到connectionString
。
如果我想添加整个部分而不是节点会不会有问题?
修改
在阅读了几篇文章后,有人说转换只在我发布网站时有效,所以我尝试将它发布到我的本地IIS。
当我创建和预览发布配置文件时,它会返回错误
使用'configSource'的部分可能不包含其他属性或元素。