EFCodeFirst 4.2 и токены манифеста провайдера - PullRequest
0 голосов
/ 20 ноября 2011

У меня есть библиотека, которую я создал, которая зависит от EF Codefirst для взаимодействия с БД.Я также использую EntityMigrations Alpha 3. Когда я использую библиотеку в моем основном приложении (WPF), все работает нормально и как ожидалось.Другая часть системы использует Excel и извлекает информацию с использованием той же библиотеки через дополнительный класс COM между ними.

В сценарии Excel, как только он пытается подключиться к базе данных, он выдает исключение длясделать с «Поставщик не возвратил ProviderManifestToken».

Я действительно не уверен, почему я получаю ошибку, только когда я прохожу через Excel / COM.В обоих случаях я могу подтвердить, что используется одна и та же строка подключения к БД.Метод извлечения строки подключения к БД также тот же - они используют общий файл конфигурации и класс загрузчика.

Любые предложения приветствуются.

1 Ответ

0 голосов
/ 21 ноября 2011

Проблема решена.

Я также создал собственный DBIntializer и часть вызовов инициализации EntityMigrations, чтобы обеспечить актуальность БД. Пользовательская миграция вызывает конструктор по умолчанию в вашем контексте. По соглашению, он будет либо динамически использовать свою собственную строку подключения для SQLExpress (я не установил), либо попытаться найти запись в вашем файле конфигурации (у меня этого тоже нет для dll - config приходит из хостинговых приложений) .

Это то, что вызывает сбой при использовании из Excel (В моем сценарии). Миграция будет обновлять экземпляр контекста, используя конструктор по умолчанию. Это означает, что запись конфигурации для строки подключения требуется или использует процесс по умолчанию (SQLExpress). При использовании из Excel в COM env - файл конфигурации не существует.

Выход из стратегии инициализации означает, что у меня больше нет проблем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...