如何将LocalDB添加到Visual Studio 2015社区的SQL Server对象浏览器?

问题

我不明白如何使SQL Server对象资源pipe理器中显示LocalDB。 在一些虚拟机上,它自动显示,在其他一些虚拟机上不显​​示。 尽pipe如此,谷歌search几个小时后,我不明白。

现在的情况

  1. 我有一个干净的VM
  2. 我安装了Visual Studio 2015社区(所有默认设置)
  3. 我让一个控制台应用程序运行(entity framework6,代码优先,控制台应用程序)在另一个虚拟机上工作,并自动创build一个数据库,然后显示在SQL Server对象资源pipe理器; 但这次不行

错误说:

System.Data.SqlClient.SqlException (0x80131904): A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 52 - Unable to locate a Local Database Runtime installation. Verify that SQL Server Express is properly installed and that the Local Database Runtime feature is enabled.) ---> System.ComponentModel.Win32Exception (0x80004005): The system cannot find the file specified 

所以,在这个虚拟机上,没有数据库被创build,也没有在SQL Server对象资源pipe理器的SQL Server节点中显示出来。

连接到LocalDB

我想知道的

  • Visual Studio 2015社区附带LocalDB; 所以一切都应该开箱即可,但事实并非如此,我不知道为什么
  • LocalDB数据库只是一对文件(* .mdf和* .ldf)
  • 我已经看到在C:\Users\<username>\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\MSSQLLocalDB中的默认数据库位置创build的文件; 但在这个虚拟机上,没有这样的文件夹
  • App.config看起来每次都是这样的(当我在Visual Studio中安装Entity Framework 6 NuGet包pipe理器时,它是自动创build的:

App.config中

 <configuration> <configSections> <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> </configSections> <entityFramework> <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework"> <parameters> <parameter value="mssqllocaldb" /> </parameters> </defaultConnectionFactory> <providers> <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> </providers> </entityFramework> </configuration> 

其他随机评论

  • 早些时候,有了SQL Server,有必要打开某些端口,但据我了解,LocalDB在Visual Studio启动时按需运行。
  • 我不知道如何debuggingSQLException
  • LocalDB是否与Visual Studio 2015社区打包在一起,是否需要单独安装?

我今天在安装VS2015 Community Edition Update 1时遇到同样的问题。

我通过添加VS2015安装程序安装程序中的“ SQL Server Data Tools ”来解决问题…当我第一次运行安装程序时,我select了“Custom”安装types而不是“Default”。 我想查看哪些安装选项可用,但不要select与已经打勾的内容不同的东西。 我的假设是,无论已经打勾,本质上是默认安装。 但不是。

要检查是否安装了LocalDb:

  • 运行SSMS(SQL Server Management Studio)。
  • 尝试使用Windows身份validation连接到此实例(localdb)\V11.0

如果发生错误Cannot connect to (localdb)\V11.0. 将实例名称更改为(localdb)\MSSQLLocalDB并再次尝试连接,如果仍然出现相同的错误。

按照以下步骤安装LocalDb:

  • closuresSSMS。
  • closuresVS(Visual Studio)如果它正在运行。
  • 转到Start Menu并键入searchsqlLocalDb
  • 从出现的结果中selectsqlLocalDb.msi并单击它。
  • SQL安装程序将开始安装LocalDB

完成安装后,请重新运行SSMS并尝试连接到任一实例(localdb)\V11.0(localdb)\MSSQLLocalDB ,其中一个实例取决于您拥有的Visual Studio版本。

您还可以通过简单地创build新的SQL文件,并转到文件顶部标题上的连接图标来validation是否使用Visual Studio安装了localdb ,默认情况下列出了可以连接到的所有服务器,包括localdb如果已安装)。

除了上面提到的安装localdb的方法之外,还可以在服务器机器上使用MS windows power shellwindows command processor CMD甚至NuGet package manager console ,并运行sqllocaldb isqllocaldb v命令来显示如果安装了localdb名称,并且在您的计算机上安装并运行了MSSQL服务器版本。

如果您不确定是否安装了本地数据库,或者不确定应使用哪个数据库名称来连接它,请尝试运行“sqllocaldb info”命令 – 它将显示现有的localdb数据库。

现在,据我所知,本地数据库应该与Visual Studio 2015一起安装。但可能它不是必需的function,如果出现问题或由于某种原因无法安装 – Visual Studio安装仍然继续(请注意只是我的猜测)。 所以为了安全起见,不要依赖它,一直和VS一起安装。

  1. 从开始菜单search“sqlLocalDb”
  2. 点击运行命令,
  3. 回到VS 2015工具/连接数据库,
  4. selectMSSQL服务器,
  5. input(localdb)\ MSSQLLocalDB作为服务器名称

select你的数据库,并准备好去。

我试图只安装在我的VS 2015安装中漏掉的LocalDB。 在下面的URL和有select地下载LocalDB(2012)安装程序,它只有33mb大小:)

https://www.microsoft.com/en-us/download/details.aspx?id=29062

如果您正在寻找适用于Visual Studio 2015集成的SQL Server数据工具,请从以下位置下载:

https://msdn.microsoft.com/en-us/mt186501

  1. searchsqllocaldblocalDB并右键单击打开的文件位置
  2. 在search中find的文件位置打开命令提示符
  3. 在命令提示符处inputsqllocaldb start

  4. 使用<add name="defaultconnection" connectionString="Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=tododb;Integrated Security=True" providerName="System.Data.SqlClient" />

 My App.config looks as below: <?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> </configSections> <entityFramework> <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework"> <parameters> <parameter value="v11.0" /> </parameters> </defaultConnectionFactory> <providers> <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> </providers> </entityFramework> </configuration> 

我注意到在上面提到的path中有localDB,并且版本为v11.0。 所以我在“添加连接”对话框中input(LocalDB \ V11.0),它为我工作。