Подтвердить что ты не робот

Entity Framework 5 смешивает Oracle и SQL Server

У меня есть 2 DLL-проекта слоя данных. Один из них касается таблиц Oracle и другого SQL Server. Каждый из них работает самостоятельно, когда используется в отдельных проектах.

Когда я создаю проект, включающий обе библиотеки DLL, я получаю следующую ошибку при запросе таблицы Oracle:

Указанная схема недействительна. Ошибки: Model.ssdl(2,48): ошибка 0172:
Все артефакты SSDL должны быть нацелены на одного и того же провайдера. Провайдер "Oracle.ManagedDataAccess.Client" отличается от "Oracle.ManagedDataAccess.Client", который был встречен ранее. Model.ssdl(2,81): ошибка 0169: все артефакты SSDL должны быть нацелены на одинаковые поставщик. ПровайдерManifestToken '2008' отличается от '11.2 ' которое было встречено ранее.

Сумасшедшая вещь, в моем 1 проекте, который включает в себя 2 проекта слоев данных, если я прокомментирую функцию, которая использует уровень данных SQL Server (хотя на самом деле это никогда не вызывает в настоящее время), тогда это работает. Как-то наличие этого кода вызывает эту ошибку выше. Как я могу объединить структуру сущностей SQL Server и Oracle?

4b9b3361

Ответ 1

Мой код начал работать, когда я переместил соединение Oracle DB и запрос в отдельный метод.

У меня создалось впечатление, что я должен поддерживать соединение Oracle открытым для всех запросов, потому что это было бы неэффективно в противном случае, но очевидно, это фактически выполняется автоматически под капотом. Теперь, когда объем двух соединений полностью раздельный, он работает.

Почему? Не знаю...