2012-01-05 4 views
3

Насколько я знаю, весь смысл инфраструктуры Entity - упростить и унифицировать модели доступа к данным.Что такое ORM Если мне нужно определить каждое поле в app.config для Oracle .net Entity Framework

Я загрузил последние инструменты Oracle .net (ODAC 11.2 Release 4), который утверждает поддержку EF4, и я пытаюсь импортировать некоторую хранимую процедуру Oracle (через функцию import), которая имеет один курсор ref в качестве выходного параметра. Когда я прочитал документацию по Oracle's site

В нем говорится, что я должен определить каждое поле, возвращаемое курсором ref в моем app.config. Ну. Это очень глупо и делает всю структуру Entity бесполезной для Oracle.

Я что-то не хватает?

+0

Предлагаю вам попробовать задать этот вопрос на форуме Oracle для ODP. https://forums.oracle.com/forums/forum.jspa?forumID=146 – APC

+0

Я не уверен, как вы вызываете хранимые процедуры, но я использую DevArt dotConnect для Oracle, и мне не нужно предоставлять их в web.config. Может быть, это проблема конкретного поставщика? –

ответ

3

вся суть структуры Entity заключается в упрощении и унификации моделей доступа к данным

В теории да. На практике MS нацеливает средства MS = они работают только на поддержку функций SQL Server и SQL Server CE. Если в других базах данных имеются некоторые дополнительные дополнительные функции, они либо недоступны в EF, либо должны быть каким-то образом взломаны.

Хранимая процедура (через функцию импорта), в которой есть один курсор в качестве выходного параметра.

Это пример такой функции. Я не знаю о возможности возврата курсора базы данных из хранимой процедуры на SQL-сервере, и EF действительно не поддерживает это.

В нем говорится, что я должен определить каждое поле, возвращаемое курсором ref в моем app.config. ну .. Это очень глупо и делает всю структуру Entity бесполезной для Oracle.

Но это не проблема EF, а то, как Oracle использует API для его использования. IMHO весь курсор каким-то образом скрыт ODP.NET, и он передает нормальный результат в EF. Отображение результата курсора описано в конфигурации.

0

Я согласен с тобой на 100%. Внедрение Oracle EF крайне неэффективно. Отображение является глупым, склонным к ошибкам и кошмаром для поддержания. По крайней мере Oracle должен был предоставить генераторный инструмент, который обращает инженеров код SP и создает сопоставление. Даже если идеальное отображение невозможно, это будет началом. Также он не поддерживает функции, и наш стандарт Oracle поддерживает функции по SP, где это возможно. Возвращение нескольких refcursors также невозможно.