【发布时间】:2011-09-20 13:06:54
【问题描述】:
我们有一个包含多个 DLL 的项目。在每个 DLL 中,我们连接到一个数据库 - 对于客户端来说总是同一个。
因此,我们现在有 3 个几乎相同的连接字符串:一个用于我们的网站,一个用于 ado.net,一个用于 Telerik 报告:
<add name="BDConnectionString" connectionString="Data Source=localhost;Initial Catalog=DATABASE;Persist Security Info=True;User ID=USER;Password=PASSWORD; MultipleActiveResultSets=True;Pooling=True;Max Pool Size=500;" providerName="System.Data.SqlClient" />
<add name="CMS.Reporting.My.MySettings.BDConnectionString" connectionString="Data Source=localhost;Initial Catalog=DATABASE;Persist Security Info=True;User ID=USER;Password=PASSWORD" providerName="System.Data.SqlClient" />
<add name="KOPWebEntities" connectionString="metadata=res://*/Data.web.csdl|res://*/Data.web.ssdl|res://*/Data.web.msl;provider=System.Data.SqlClient;provider connection string="Data Source=localhost;Initial Catalog=DATABASE;Persist Security Info=True;User ID=USER;Password=PASSWORD;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient" />
现在还是可以管理的,但是将来我们会有更多的 ADO.Net Entity Framework 连接,所以客户端可能有 10 个连接字符串?
有没有办法说,“好的,对于这个连接字符串,使用来自这里的值”而不是复制它?至少对于 ADO.Net 而言?
或者有没有更好的方法?
谢谢
【问题讨论】:
-
可能只是我,但我不太明白你在问什么
-
好吧,我不想为每个客户端维护 10 个几乎相同的连接字符串(每个实体模型一个)。我可以简化它吗?
-
嗯,每个数据库只需要 1 个连接字符串,因此如果将表放在同一个数据库中,则只需要 1 个连接字符串即可连接到所有表。这有帮助吗?
-
不,它没有。试试这个:向您的项目添加一个 ADO.Net 实体模型,其中包含几个表。然后添加另一个。尝试为两者重用相同的连接字符串。现在,用 10 个实体模型来描绘它。然后,用 30 个不同的连接字符串为 30 个不同的客户端描绘它。
标签: web-config connection-string