Я создаю расширение VS, в котором некоторые настройки хранятся в базе данных.Во время выполнения, как только достигается запрос LINQ, приложение выдает ошибку: «В файле конфигурации приложения не найдена строка подключения с именем« MercuryEntities ».»
Решение состоит из двух проектов: классабиблиотека (где находится файл edmx) и проект VSIX, который ссылается на библиотеку классов.Расширение открывает Winform, который должен подключиться к БД для загрузки.У меня есть App.config, определенный в обоих проектах, которые имеют строку подключения с именем «MercuryEntities».Он все еще находится в начальной стадии разработки, поэтому я просто подключаюсь к localhost.Сборка моделей работает просто отлично.
App.config библиотеки классов:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<connectionStrings>
<add name="MercuryEntities" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string="data source=localhost;initial catalog=Mercury;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
</configuration>
App.config VSIX:
<?xml version="1.0" encoding="utf-8"?>
<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>
<connectionStrings>
<add name="MercuryEntities" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string="data source=localhost;initial catalog=Mercury;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
</configuration>
Конструктор контекста БД:
public MercuryEntities()
: base("name=MercuryEntities")
{
}
Я искал несколько форумов и ничего не нашел относительно EF с проектами VSIX.Большинство ответов подразумевают, что основное приложение имеет копию строки подключения.
Есть идеи, почему это может происходить?