Можно ли ссылаться на строку подключения в другой строке подключения? - PullRequest
2 голосов
/ 22 июня 2011

У нас есть проект с несколькими 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 голосов
/ 09 декабря 2011

Я заметил, что вы упомянули Entity Framework. Можно создавать контексты сущностей с соединениями SQL, отличными от определенных в конфиге приложения / веб-приложения. (Я должен был бы выкопать код). Однако, поскольку у более общего вопроса «есть строка подключения, который на самом деле ссылается на другую строку подключения», я бы сказал, что если у вас нет источника, то вам не повезло.

Вероятно, было бы лучше, если бы ваши DLL не ссылались на настройки приложения / веб-конфигурации, и для классов, определенных в них, вы могли бы передать либо «ключ приложения», который имеет ассоциированное значение, ссылающееся на соединение строка, сама строка подключения SQL, экземпляр SqlConnection или какая-то SqlConnection-Factory-Thing, которую вы создаете.

...