VS / EF игнорирует настройку MSSQLLocalDB в App.config

entity-framework visual-studio-2015 connection-string

327 просмотра

1 ответ

Ранее я устанавливал SQL Server 2008 R2 и VS 2015. Я создавал некоторые консольные приложения с использованием EF (6.1.3) и добавил строку подключения следующим образом:

<connectionStrings>
    <add name="DefaultConnection" 
         connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=EFTest2.mdf;Initial Catalog=EFTest2;Integrated Security=True"
         providerName="System.Data.SqlClient" />
</connectionStrings>

База данных правильно создавалась под (LocalDb)\MSSQLLocalDBэкземпляром (v12.0.2000)

(Хотя я заметил 2 особенности:

  1. Если я переименовал базу данных в строке подключения, EF не создал новую базу данных с новым именем, и

  2. EF автоматически добавляет имя контекста в файл БД, например EFTest2.MyContext.mdf. Это может относиться к текущему вопросу ....)

Затем я установил SQL Server 2014 и инструменты (SSMS). После перезагрузки ПК теперь, если я использую ту же строку подключения, что и выше, база данных создается в USER-PC\SQLEXPRESS(v10.0.2531). Таким образом, VS игнорирует (LocalDb)\MSSQLLocalDBчасть, но по-прежнему создает БД с именем, указанным в строке подключения.

Кто-нибудь может объяснить это?

(Я создал DbContextбез указания строки подключения. Я обнаружил, что если я указываю строку подключения, то VS следует всю информацию, включенную в строку подключения)

Автор: RaelB Источник Размещён: 28.10.2019 12:09

Ответы (1)


0 плюса

У меня просто была похожая проблема, и в моем случае оказывается, что наша структура сущностей добавляет свою собственную дополнительную конфигурацию, где она имеет имя экземпляра:

entityFramework/defaultConnectionFactory

Для меня не имеет смысла, зачем добавлять это, когда имя istance указано в строке подключения, но если имя isntance в этом разделе отличается, то он будет использовать это, а не имя instace localdb из строки подключения.

Автор: axk Размещён: 02.08.2016 06:44
Вопросы из категории :
32x32