How can I specify to use SQL Server LocalDb 2014 rather than SQL Server LocalDb 2016 in the connection string?

爱⌒轻易说出口 提交于 2019-11-30 07:35:54

Well, seeing that apart from Erik's answer no solutions have been provided, we must assume that indeed you cannot specify which flavour of SQL Server LocalDb you wish to use when using "Data Source=(localdb)\mssqllocaldb" in a connection string.

A drawback of Erik's solution is that it does not play nice with other applications that may use the default instance of LocalDb (MSSQLLocalDb). I found a different approach in using a so called named instance: an instance of LocalDb private to your application. While defining a named instance you can specify the version of LocalDb you want to use: 12.0 for LocaldDb 2014, 13.0 for Localdb 2016.

There are two ways to create a named instance:

  1. Using the sqllocaldb commandline tool:

SqlLocalDB.exe create "MyNamedInstance" 12.0 -s

The -s parameter starts the instance immediately.

  1. Specifying the named instance in app.config:

For this add to the <configSections> tag:

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

Then add a new tag:

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

You can now specify the named instance in the connection string thus:

"Data Source=(localdb)\mynamedinstance" 

You can use the sqllocaldb command line tool to create and delete instances, so delete the instance on 2016 (version 13.0) like this:

sqllocaldb delete "mssqllocaldb"

And then create that instance name on 2104 (version 12.0) using:

sqllocaldb create "mssqllocaldb" 12.0

There is also a nice .NET library available for doing this:

https://github.com/martincostello/sqllocaldb

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!