2017-01-27 14 views
0

В настоящее время я работаю над приложением MVC, которое использует Entity Framework для взаимодействия с базой данных Oracle.Ошибка поставщика поставщика с помощью EF

Создание edmx, добавление и обновление таблиц, все эти действия выполняются без каких-либо ошибок, поскольку я установил все поставщики Oracle, необходимые для работы с .NET.

Однако, вот что: когда я пытаюсь запустить свое приложение (которое выполняется без ошибок), когда выполняется следующая строка, Visual Studio вызывает ошибку.

return PartialView("_GridViewRecruitmentPartial", model.Where(e => e.NON_ACTIVE != 1).OrderByDescending(e => e.EMPL_ID).ToList()); 

Сообщение об ошибке:

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

И внутреннее сообщение:

Не удалось найти запрошенный поставщика данных .NET Framework. Он может не быть установлен

Я знаю, что с EF и Oracle что-то не так, но не видно. Кроме того, у меня есть много других проектов, использующих эти 2, и все прошло хорошо.

Любое предположение?

+0

Вы говорите об ошибке, которое происходит после развертывания приложения в другое место, чем где вы разработал его? Если это так, необходимы обновления файла конфигурации, позволяющие EF знать об ODP.NET. Они обрабатываются автоматически пакетом Nuget Entity Framework ODP.NET или установкой установщика ODP.NET (во втором случае вам нужно запустить установщик на целевой машине или обновить конфигурацию самостоятельно). Пожалуйста, подтвердите, что происходит, и какие точные пакеты odp.net вы используете, Nuget или иначе. –

ответ

1

Я не уверен, что вы используете для доступа к данным. Есть несколько поставщиков Oracle ... Во всяком случае, вы, вероятно, должны использовать официальный номер Oracle Managed driver от Nuget.

При установке его из NuGet он должен добавить себя в свой web.config, так что все работает ..

<entityFramework> 
    <providers> 
     <provider invariantName="Oracle.ManagedDataAccess.Client" 
    type="Oracle.ManagedDataAccess.EntityFramework.EFOracleProviderServices, Oracle.ManagedDataAccess.EntityFramework, Version=6.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342"/> 
    </providers> 
</entityFramework>