Как добавить LocalDB в Обозреватель объектов SQL Server сообщества Visual Studio 2015?


Я не понимаю, как заставить LocalDB отображаться в Обозревателе объектов SQL Server. На некоторых виртуальных машинах он появляется автоматически, на некоторых других виртуальных машинах-нет. тем не менее, после нескольких часов поиска я этого не понимаю.

текущая ситуация

  1. у меня есть чистая VM
  2. Я установил сообщество Visual Studio 2015 (все настройки по умолчанию)
  3. я запускаю консольное приложение (Entity Framework 6, code-first, console приложение), который работал на другой виртуальной машине и автоматически создал базу данных, которая затем появилась в Обозревателе объектов 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

Итак, на этой виртуальной машине база данных не создается, и ничего не отображается в Обозревателе объектов SQL Server SQL Server узел.

что я думаю знать

  • Visual Studio 2015 Community поставляется с LocalDB; так что все надо просто работать из коробки, но это не так, и я не знаю, почему
  • базы данных LocalDB-это всего лишь пара файлов (*.MDF и.* ldf)
  • Я видел файлы, создаваемые в расположении базы данных по умолчанию в C:Users<username>AppDataLocalMicrosoftMicrosoft SQL Server Local DBInstancesMSSQLLocalDB; но на этой виртуальной машине нет такой папки
  • The App.config выглядел каждый раз так (и он был автоматически создан таким образом, когда я установил Entity Framework 6 Диспетчер пакетов NuGet в Visual Студия:

приложение.конфигурации

<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.
  • Я не знаю, как для отладки SQLException
  • разве LocalDB не поставляется в комплекте с Visual Studio 2015 Community и мне нужно установить его отдельно?
7 52

7 ответов:

У меня была та же проблема сегодня, недавно установив обновление VS2015 Community Edition 1.

я исправил проблему, просто добавив "SQL Server Data Tools" из VS2015 setup installer... Когда я запустил установщик в первый раз я выбрал "пользовательский" тип установки вместо "по умолчанию". Я хотел посмотреть, какие параметры установки были доступны, но не выбрать ничего другого, чем то, что уже было отмечено. Мое предположение было то, что уже было отмечено, было по существу установкой по умолчанию. Но это не так.

чтобы проверить, установлен ли LocalDb или нет:

  • запустите SSMS (среда SQL Server Management Studio).
  • попробуйте подключиться к этому экземпляру (localdb)\V11.0 использование проверки подлинности windows.

если возникает ошибка 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 у вас есть.

вы также можете убедиться, что localdb устанавливается с помощью Visual Studio, просто создав новый файл sql и перейдите к значку подключения в верхнем заголовке файла, в котором по умолчанию перечислены все серверы, к которым вы можете подключиться, включая localdb если установлен.

в дополнение к вышеупомянутым способам поиска, если localdb установлен, вы также можете использовать MS windows power shell или windows command processor CMD или даже NuGet package manager console на вашем сервере и запустите эти команды sqllocaldb i и sqllocaldb v это покажет вам имя localdb, если это так установлен и версия сервера MSSQL установлена и запущена на вашем компьютере.

Если вы не уверены, установлена ли локальная база данных, или не уверены, какое имя базы данных вы должны использовать для подключения к ней - попробуйте запустить команду "sqllocaldb info" - она покажет вам существующие базы данных localdb.

теперь, насколько я знаю, локальная БД должна быть установлена вместе с Visual Studio 2015. Но, вероятно, это не обязательная функция, и если что - то пойдет не так или она не может быть установлена по какой-то причине-установка Visual Studio продолжается до сих пор (обратите внимание, что это только мое предположение). Так чтобы быть в безопасности, не полагайтесь на то, что он всегда будет установлен вместе с VS.

  1. Поиск "sqlLocalDb" из меню Пуск,
  2. нажмите на команду Выполнить,
  3. вернуться к инструментам VS 2015 / подключиться к базе данных,
  4. выберите сервер MSSQL,
  5. введите (localdb)\MSSQLLocalDB в качестве имени сервера

выберите вашу базу данных и готов к работе.

Я попытался установить только LocalDB, который был пропущен в моей установке VS 2015. Ниже приведен URL-адрес и выборочно загрузите установщик LocalDB (2012), размер которого составляет всего 33 Мб :)

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

Если вы ищете средство SQL Server Data Tool для интеграции с Visual Studio 2015, загрузите его с:

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

  1. искать sqllocaldb или localDB в меню Пуск windows и щелкните правой кнопкой мыши на open file location
  2. Откройте командную строку в том месте файла, которое вы нашли в поиске
  3. в командной строке введите sqllocaldb 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>

Я заметил, что есть localdb в путь, который вы упомянули выше, и имеет версии 11.0. Поэтому я вошел (LocalDB\V11.0) в диалог добавления соединения, и это сработало для меня.