Как я могу указать использование SQL Server LocalDb 2014, а не SQL Server LocalDb 2016 в строке подключения?

Наше приложение использует SQL Server LocalDb 2014 как механизм базы данных. Используемая строка подключения

«Источник данных = (localdb)  MSSQLLOCALDB; Начальный каталог = Наша база данных; MultipleActiveResultSets = True; Интегрированная безопасность = True; AttachDBFilename = | DataDirectory | OurDatabase.mdf« ql prettyprint prettyprinted »>"Data Source=(localdb)mssqllocaldb"

Теперь, на одном из наших компьютеров, он имеет VS 2015SP3 и последнюю версию объектов SQL Server, наше приложение начинает использовать SQL Server LocalDb 2016. Это нежелательно, так как мы регулярно обмениваем резервные копии файлов базы данных между компьютерами и теперь резервные копии, сделанные в формате LocalDb 2016, не могут быть прочитаны на компьютерах, которые не имеют LocalDb 2016.

Проблема заключается в том, что строка подключения не указывает, какую версию LocalDb следует использовать. Это там способ заставить LocalDb 2014 (или 2016, если мы решили обновить?)

sql-server,localdb,sql-server-2014-localdb,sql-server-2016-localdb,

4

Ответов: 2


5 "> принят

Ну, учитывая, что помимо ответа Эрика решения не были предоставлены, мы должны предположить, что вы не можете указать, какой вкус SQL Server LocalDb вы хотите использовать при использовании sqllocaldbв строке соединения.

Недостатком решения Erik является то, что он не играет хорошо с другими приложениями, которые могут использовать экземпляр по умолчанию LocalDb (MSSqlLocalDB.exe создает «MyNamedInstance» 12.0-s). Я нашел другой подход при использовании так называемого именованного экземпляра: экземпляр LocalDb, приватного для вашего приложения. При определении именованного экземпляра вы можете указать версию LocalDb, которую хотите использовать: 12.0 для LocaldDb 2014, 13.0 для Localdb 2016.

Существует два способа создания именованного экземпляра:

  1. Использование sqllocaldbинструмента командной строки:

-s

-sПараметр запускает экземпляр немедленно.

  1. Указание именованного экземпляра в app.config:

Для этого добавьте <configSections>тег:

<section name="system.data.localdb"
         type="System.Data.LocalDBConfigurationSection,System.Data,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089"/>

Затем добавьте новый тег:

<system.data.localdb>
    <localdbinstances>
      <add name="MyNamedInstance" version="12.0" />
    </localdbinstances>
</system.data.localdb>

Теперь вы можете указать именованный экземпляр в строке соединения, таким образом:

"Data Source=(localdb)mynamedinstance" 

1

Вы можете использовать инструмент командной строки sqllocaldb для создания и удаления экземпляров, поэтому удалите экземпляр в 2016 году (версия 13.0) следующим образом:

sqllocaldb delete "mssqllocaldb"

А затем создайте это имя экземпляра на 2104 (версия 12.0), используя:

sqllocaldb create "mssqllocaldb" 12.0

Для этого есть хорошая библиотека .NET:

https://github.com/martincostello/sqllocaldb

SQL-сервер, LocalDB, SQL-сервер-2014-LocalDB, SQL-сервер-2016-LocalDB,
Похожие вопросы