Гость
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / ORM для Oracle с хорошей поддержкой хранимых процедур / 6 сообщений из 6, страница 1 из 1
29.03.2017, 11:31
    #39429053
Тройка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORM для Oracle с хорошей поддержкой хранимых процедур
Добрый день. Есть старый проект на Delphi 7, который работает с базой Oracle и очень активно использует его хранимые процедуры. Хочу переписать его под C# именно с использованием ORM. И соответственно встал вопрос, как быть с вызовом хранимок через ORM.
Особенно интересует вызов функций, которые возвращают курсор с данными (ну или процедур с out параметром типа SYS_REFCURSOR, бывает и такая реализация). Интересно, что бы в этом случае ORM возвращала типизированный результат.
Для MS SQL пробовал Entity Framework 6, и он работает именно так, создавая сущность [function_name]Result
А вот с Oracle в этом плане беда. EF в дизайнере модели вообще не видит хранимок. При этом с обычными таблицами все работает. Пробовал Devart Entity Developer который даже платный. Он их видит, но, по сути, нормально использовать не может: типизированные результаты не создает да и вообще делает неправильные вызовы.
Самое интересное, что ODAC компоненты Delphi для доступа к Oracle в этом плане просто супер. Передаешь имя хранимки и они сами генерят ее корректный вызов. Никогда не было с этим проблем, даже не задумывался. И при возврате данных в SYS_REFCURSOR тоже всегда вытягивает столбцы в свое Query в дизайнтайме, делая ее типизированной. При том, что думаю ODAC этому уже лет 10.
Не уж-то под C# сейчас не найдется ничего подобного? Может кто работал, подскажите.
...
Рейтинг: 0 / 0
29.03.2017, 12:27
    #39429122
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORM для Oracle с хорошей поддержкой хранимых процедур
Тройка,

Зачем ORM и хранимые процедуры (активное использование)? ORM не может гарантировать целостность данных, которые он загрёб, если выполняются какие-то процедуры, значит преимущества ORM накрываются медным тазом.

Попробуй Dapper. Или linq2db. В общем, полноценный ORM тебе не нужен. Тебе нужен простой маппер из сфетченных таблиц коллекции классов. Ну и SQL руками. Забудь про дизайнер. Вообще слово "дизайнер" из лексикона можно убрать. Только хард код.
...
Рейтинг: 0 / 0
29.03.2017, 12:31
    #39429128
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORM для Oracle с хорошей поддержкой хранимых процедур
ТройкаСамое интересное, что ODAC компоненты Delphi для доступа к Oracle в этом плане просто супер. Передаешь имя хранимки и они сами генерят ее корректный вызов. Никогда не было с этим проблем, даже не задумывался. И при возврате данных в SYS_REFCURSOR тоже всегда вытягивает столбцы в свое Query в дизайнтайме, делая ее типизированной. При том, что думаю ODAC этому уже лет 10.

Разработчики того времени базировались на предположении, что визуальный редактор для построения приложений это гуд. И что таблицы не будут меняться. И что вообще всё будет шоколадно и в розовом цвете, кладёшь себе мышкой на форму копонентики, а там оно "фсё само".

Сегодня это не так. Оказалось, что прощё и быстрее писать код. Поэтому всё это стало не нужно.

Тем более надо учитывать изначально, что ORM и активное использование хранимок это два противоречивых подхода. Если это будет чисто CRUD-процедуры, которые маппятся на CRUD-действия, и не имееют побочных эффектов, это ещё куда ни шло, с огромной натяжкой, это можно использовать в EF. Но в целом, надо выбирать, тебе или шашечки, или ехать.
...
Рейтинг: 0 / 0
29.03.2017, 12:33
    #39429135
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORM для Oracle с хорошей поддержкой хранимых процедур
Тройка,

В общем про дизайн тайм забудь. Он не популярен у разработчиков. Он не имеет большого смысла, от него больше вреда чем пользы. Научись писать код и работать с кодом, потому что дизайнеры это тухляк и тупиковый путь.
...
Рейтинг: 0 / 0
29.03.2017, 13:08
    #39429184
Тройка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORM для Oracle с хорошей поддержкой хранимых процедур
hVosttЗачем ORM и хранимые процедуры (активное использование)? ORM не может гарантировать целостность данных, которые он загрёб, если выполняются какие-то процедуры, значит преимущества ORM накрываются медным тазом.
Разработчики того времени базировались на предположении, что визуальный редактор для построения приложений это гуд. И что таблицы не будут меняться. И что вообще всё будет шоколадно и в розовом цвете, кладёшь себе мышкой на форму копонентики, а там оно "фсё само".
Сегодня это не так. Оказалось, что прощё и быстрее писать код. Поэтому всё это стало не нужно.
код.
Спасибо за разъяснения и краткий экскурс в историю. Ушел думать...
...
Рейтинг: 0 / 0
30.03.2017, 07:09
    #39429631
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ORM для Oracle с хорошей поддержкой хранимых процедур
ТройкаhVosttЗачем ORM и хранимые процедуры (активное использование)? ORM не может гарантировать целостность данных, которые он загрёб, если выполняются какие-то процедуры, значит преимущества ORM накрываются медным тазом.
Разработчики того времени базировались на предположении, что визуальный редактор для построения приложений это гуд. И что таблицы не будут меняться. И что вообще всё будет шоколадно и в розовом цвете, кладёшь себе мышкой на форму копонентики, а там оно "фсё само".
Сегодня это не так. Оказалось, что прощё и быстрее писать код. Поэтому всё это стало не нужно.
код.
Спасибо за разъяснения и краткий экскурс в историю. Ушел думать...Тут можно добавить, что многие задачи по автоматизации рутины, решаемые "раньше" дизайнером, "теперь" решаются кодогенерацией. Рекомендую ознакомиться с T4 Text Template или аналогичными инструментами.
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / ORM для Oracle с хорошей поддержкой хранимых процедур / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]