Унифицированная строка подключения для MS SQL Express и SQL LocalDb?

Мне нужно поддерживать SQL Express и LocalDb в моем приложении ASP.NET. Это пример приложения для демонстрационных целей, а не настоящий веб-сайт.

В настоящее время приложение поставляется со строкой подключения LocalDb:

<add name="Conn" 
connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=SampleDB;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\SampleDB.mdf" 
providerName="System.Data.SqlClient" />

Если у пользователя установлен только SQL Express, он должен обновить строку подключения, чтобы она выглядела так:

<add name="Conn"
connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\SampleDB.mdf;User Instance=true"
providerName="System.Data.SqlClient" />

Is it possible to specify connection string so that both SQL Express and SQL LocalDb are supported and user do not need to update the connection string?

Я могу обновить свой образец приложения, чтобы проверить наличие Sql Express и локальной базы данных и автоматически выбрать нужную строку, но хочу избежать этого, потому что мне нужно, чтобы приложение было максимально простым с минимальным кодом.


person IT Hit WebDAV    schedule 29.05.2013    source источник


Ответы (1)


Я не думаю, что возможна "универсальная" строка подключения. Это противоречит цели строки подключения, которая заключается в предоставлении информации для конкретного хранилища данных, работающего на определенной технологии.

Если ваша проблема заключается в том, что вы разрабатываете на LocalDB и работаете, скажем, в SQL Server Express, вы можете воспользоваться преимуществами преобразования web.config, чтобы выбрать строку подключения в зависимости от среды, в которой выполняется развертывание.

person Jan Kratochvil    schedule 25.06.2013