是否可以在另一个连接字符串中引用连接字符串?

时间:2011-06-22 16:08:07

标签: web-config connection-string

我们有一个包含多个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=&quot;Data Source=localhost;Initial Catalog=DATABASE;Persist Security Info=True;User ID=USER;Password=PASSWORD;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />

现在它仍然可以管理,但是在未来,我们将有更多的ADO.Net Entity Framework连接,所以客户端可能有10个连接字符串?

有没有办法说,“好吧,对于这个连接字符串,使用来自这里的值”而不是重复它?至少对于ADO.Net?

或者有更好的方法吗?

由于

1 个答案:

答案 0 :(得分:0)

我注意到你提到了Entity Framework。可以使用与application / web config中定义的SQL连接不同的SQL连接创建实体上下文。 (我必须挖掘代码)。但是,就更普遍的“有一个实际引用另一个连接字符串的连接字符串”的问题而言,我会说,如果你没有来源,那就太难了。

如果您的DLL没有引用app / web配置设置可能会更好,并且对于那里定义的类,您可以传入“应用程序密钥”,该“应用程序密钥”具有引用连接的关联值字符串,SQL连接字符串本身,SqlConnection实例,或者你组成的一些SqlConnection-Factory-Thing。