Какой смысл ORM Если мне нужно определить каждое поле в app.config для Oracle .net Entity Framework - PullRequest
3 голосов
/ 05 января 2012

Насколько мне известно, весь смысл Entity Framework состоит в том, чтобы упростить и унифицировать модели доступа к данным.

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

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

Я что-то упустил?

Ответы [ 2 ]

3 голосов
/ 05 января 2012

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

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

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

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

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

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

0 голосов
/ 18 января 2012

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

...