如何将 LocalDB 添加到 Visual Studio 2015 社区的 SQL Server 对象资源管理器?

Posted

技术标签:

【中文标题】如何将 LocalDB 添加到 Visual Studio 2015 社区的 SQL Server 对象资源管理器?【英文标题】:How to add LocalDB to Visual Studio 2015 Community's SQL Server Object Explorer? 【发布时间】:2015-12-26 03:05:21 【问题描述】:

问题

我不明白如何让 LocalDB 显示在 SQL Server 对象资源管理器中。在某些虚拟机上,它会自动显示,而在其他一些虚拟机上,它不会。尽管如此,在谷歌上搜索了几个小时后,我还是不明白。

现状

    我有一个干净的虚拟机 我安装了 Visual Studio 2015 Community(所有默认设置) 我让一个控制台应用程序运行(实体框架 6,代码优先,控制台应用程序),它在另一个 VM 上工作并自动创建了一个数据库,然后显示在 SQL Server 对象资源管理器中;但这次不是

错误提示:

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

因此,在此 VM 上,没有创建任何数据库,并且 SQL Server 对象资源管理器的 SQL Server 节点中也没有显示任何内容。

我想知道的

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

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>

其他随机cmets

以前,对于 SQL Server,必须打开某些端口,但据我了解,LocalDB 在 Visual Studio 启动时作为一个单独的进程按需运行。 不知道怎么调试SQLException Lo​​calDB 没有随 Visual Studio 2015 Community 打包,我需要单独安装吗?

【问题讨论】:

在命令行中运行“sqllocaldb info”,看看你的虚拟机上有哪些数据库。 据我记忆应该已经安装好了。可能在安装过​​程中出了点问题。我会先尝试在这台机器上安装 LocalDb,看看这是否能解决问题。如果是这样 - 好吧,由于某种原因,它没有安装。 正如@Evk 下面提到的,LocalDB 现在是减少 VS 安装大小的可选功能。检查 VS 2015 安装程序中的“SQL Server Data Tools”选项,这将确保安装 LocalDB。大多数其他 SQL 功能仍然默认安装,因为它们的大小非常小,并且在服务器资源管理器连接等关键场景中是必需的。 相关问题,如何以编程方式创建 localdb ***.com/questions/25577626/… 【参考方案1】:

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

我通过从 VS2015 安装程序中添加“SQL Server Data Tools”解决了这个问题...当我运行安装程序我第一次选择“自定义”安装类型而不是“默认”。我想看看有哪些安装选项可用,但没有选择与已经勾选的不同的任何内容。我的假设是,任何已经打勾的基本上都是默认安装。但事实并非如此。

【讨论】:

我最近下载了 Visual Studio 社区版,遇到了同样的问题,无法创建本地数据库。 Gonzalo 的解决方案解决了我的问题。我只想添加一个例外,我已经安装了 VS,所以我无法在安装过程中添加工具。相反,请转到工具 -> 扩展和更新 -> 更新 -> 产品更新并安装“Microsoft SQL Server 更新...”。然后重新启动 Visual Studio,重新构建并再次构建您的项目。这次它对我有用。我在两台 Windows 10 计算机上遇到了 100% 完全相同的场景。为我修好了。谢谢贡萨洛! 嘿,不用担心船长...是的,我认为 MS 可以做得更好,将那里命名为“...Tools”对我来说并不意味着它会安装数据库引擎,而只是提供工具。谢谢 似乎(至少)对于 VS Community 2015.2,在安装过程中默认未选择“SQL Server Data Tools”。它是额外的 450MB 左右,没有它,许多更新将无法安装。只需重新运行安装程序并选择修改。 似乎@Captainlonate 的评论应该是补充这个的答案【参考方案2】:

检查是否安装了LocalDb:

运行 cmd 并输入 sqllocaldb i 这应该会为您提供已安装的 sqllocaldb 实例(如果找到)。 运行 SSMS (SQL Server Management Studio)。 尝试使用 Windows 身份验证连接到此实例 (localdb)\V11.0

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

按照以下步骤安装 LocalDb:

关闭 SSMS。 如果 VS (Visual Studio) 正在运行,请关闭它。 转到Start Menu 并输入搜索sqlLocalDb。 从出现的结果中选择sqlLocalDb.msi 并单击它。 SQL 安装程序将开始安装 LocalDB

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

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

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

【讨论】:

此解决方案仅在您安装了 SQL Server Management Studio (SSMS) 时才有效。 SSMS 不是 Visual Studio 产品集合的一部分。【参考方案3】:

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

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

【讨论】:

【参考方案4】:
    从开始菜单中搜索“sqlLocalDb”, 点击运行命令, 回到VS 2015工具/连接数据库, 选择 MSSQL 服务器, 输入 (localdb)\MSSQLLocalDB 作为服务器名称

选择您的数据库并准备就绪。

【讨论】:

【参考方案5】:

我尝试仅安装 LocalDB,这在我的 VS 2015 安装中遗漏了。 按照下面的 URL 并有选择地下载 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

【讨论】:

【参考方案6】:
    在 Windows 开始菜单中搜索 sqllocaldblocalDB 并右键单击打开的文件位置 在您从搜索中找到的文件位置打开命令提示符

    在命令提示符下输入sqllocaldb start

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

【讨论】:

【参考方案7】:
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>

我注意到您上面提到的路径中有localDB,并且版本为v11.0。 所以我在添加连接对话框中输入了(LocalDB\V11.0),它对我有用。

【讨论】:

【参考方案8】:

如果您不知道您的 localdb ServerName,另一种解决方案(至少对于 VS2019):

工具 => SQL Server => 新查询

然后在弹出窗口中选择本地,您应该会在那里找到本地数据库的服务器名称(以及更多)

【讨论】:

以上是关于如何将 LocalDB 添加到 Visual Studio 2015 社区的 SQL Server 对象资源管理器?的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio 2015 中缺少 LocalDB?

在 Visual Studio 2015 中无法识别 LocalDB

使用 SQL Server 2014 LocalDB 和 Visual Studio 2013 构建 LightSwitch 失败

如何在没有 SQL Server Management Studio 的情况下在 SQL Server Express LocalDB 中使用 Visual Studio 2013 创建两个表之间的关

EntityFramework 连接到 Visual Studio SQL Server (localdb)

无法使用 angular-js 在 Visual Studio 2013 上连接到 localdb