Как стать автором
Обновить

Комментарии 4

4. ODP.NET does not support Code First or the DbContext APIs. — Даже для MySQL есть, а тут никак не осилят…
Какой там Code First, даже DB First не работает без танцев с бубном.
Если хотите сгенерировать код по существующей БД и при этом использовать Managed код, то вот мой рецепт.
1) Устанавливаем ODP провайдер обычный вместе с компонентами для VS.
2) Используя компонент (а без него и не получиться) генерируем классы по БД.
3) В получившемся edmx файле меняем Oracle.DataAccess на Oracle.ManagedDataAccess

Теперь код работает с Oracle.ManagedDataAccess и на сервере не надо ставить ODP.Net, достаточно одной dll.

Для того, чтобы обновить модель по БД, действуем в обратном направлении.
1) Открываем edmx как xml и меняем Oracle.ManagedDataAccess на Oracle.DataAccess
2) Открываем edmx «нормально» и жме на обновить.
3) После чего меняем Oracle.ManagedDataAccess обратно.

Что еще не работает: любое обращение к процедурам и функциям через DbContext. Получить таблицу из процедуры — нельзя, получать скаляр из процедуры — нельзя. Все только через OracleCommand.

А еще какая замечательная свистопляска с типами данных, вы бы знали.
Не пробывал пока что, но есть мнение что tnsnames.ora не особо нужен будет, если строку соеденения задать в формате EZConnect.

Не использует файлы клиента Oracle
Для работы Managed Driver не нужно устанавливать клиент Oracle. Достаточно одной таблетки библиотеки.

да его и раньше ставить не надо было (xcopy работает вполне), достаточно прописать где лежат бинари в app.config-е (dllPath параметр docs.oracle.com/html/E10927_01/featConfig.htm). Кроме того не все бинари оттуда реально нужны…

Да, если задать ConnectionString в формате EZConnect, то tnsnames.ora не нужен.

Что касается файлов клиента, то цитирую доку по приведенной ссылке:
dllPath — Specifies the location where dependent unmanaged Oracle Client binaries load from.

Подробнее про Xcopy можно прочитать по ссылке www.oracle.com/technetwork/issue-archive/2008/08-nov/o68odpnet-101744.html:
Oracle Data Access Components 11g with Xcopy deployment includes the lightweight Oracle Database Instant Client, which is less than one-third the size of a full client installation.

При использовании же ODP.NET, Managed Drive никакие бинари Instant Client'а не нужны.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации