Visual Studio 2010 Add In с использованием Entity Framework - PullRequest
1 голос
/ 09 февраля 2011

Я создаю надстройку, которая запускает графический интерфейс на основе форм. AddIn и Gui находятся в разных проектах. Gui подключается к базе данных и использует EF для ORM.

Когда я запускаю проект Gui из VS, он прекрасно работает. Когда я публикую этот графический интерфейс в папке надстроек и запускаю его, он работает нормально. Когда я запускаю Gui из надстройки в VS, он нормально загружается, но все, что пытается попасть в базу данных, не работает. EF жалуется на файлы метаданных.

Исключение: указанное имя соединение либо не найдено в конфигурация, не предназначенная для использования с провайдером EntityClient или нет действительный.

в System.Data.EntityClient.EntityConnection.ChangeConnectionString ()

Вот конфигурация в app.config

  <connectionStrings>
    <add name="companyEntities" connectionString="metadata=res://*/;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=TESTDB;Initial Catalog=company;Persist Security Info=True;User ID=id;Password=password;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient"/>
  </connectionStrings>

Единственное, о чем я могу думать, это то, что часть res: // * / отображается по-разному, когда начальная сборка отличается, но я безуспешно пытался использовать абсолютные пути к файлам csdl / msl / ssdl .

Чем отличается запуск графического интерфейса от надстройки, которая нарушает конфигурацию?

1 Ответ

0 голосов
/ 09 февраля 2011

Не полагайтесь на connectionString в файле конфигурации, который вы не контролируете.Вместо этого передайте его явно, когда вы обновляете свой контекст, используя перегрузку ObjectContext, которая принимает строку подключения.

...