Web.Config文件和Linq to Sql改变了它的位置

时间:2009-06-25 14:35:18

标签: linq-to-sql web web-config web-applications

我的项目遇到了一个奇怪的问题。它是一个网站,现在转换为解决方案中的Web应用程序。最初使用Linq to Sql .dbml文件设置类,该文件将其连接字符串存储在/MyProject/web.config中。现在项目('Web应用程序')处于一个解决方案中,当我修改Linq to Sql dbml文件时,它会创建一个web.config文件,其中只有一个连接字符串,在/MySolution/web.config中,而我仍然有/ MySolution/MyProject/web.config。这会导致重复的连接字符串名称出错。那么,我怎么能让Linq到Sql只使用/MySolution/MyProject/web.config中的web.config文件,或者我的整个web.config文件应该在MySolution / web.config中(我宁愿保留它)在哪里)谢谢!

PS:datacontext位于/MySolution/MyProject/MyCode/Models/MyDataContext.dbml

1 个答案:

答案 0 :(得分:0)

似乎更新dbml将始终强制仅更新根web.config。如果你只使用那个root web.config,那么维护你的项目可能是最简单的,但你确实有另一种选择。

每个文件夹都有自己的配置,这就是您获得重复名称异常的原因。如果您想绕过这个,可以先删除然后添加一个同名的连接字符串。如果这样做,您的connectionStrings块(在/MySolution/MyProject/web.config内)将类似于以下内容:

  <connectionStrings>
    <remove name="MyConnectionString"/>
    <add name="MyConnectionString" connectionString="XXXXXXXXXX"
      providerName="System.Data.SqlClient" />
  </connectionStrings>

就像我说的,我不能真的建议你这样做,因为你的dbml仍然会保存到root web.config,所以其他开发人员可能不容易意识到发生了什么。