|
ORM для Oracle с хорошей поддержкой хранимых процедур
|
|||
---|---|---|---|
#18+
Добрый день. Есть старый проект на 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# сейчас не найдется ничего подобного? Может кто работал, подскажите. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2017, 11:31 |
|
ORM для Oracle с хорошей поддержкой хранимых процедур
|
|||
---|---|---|---|
#18+
Тройка, Зачем ORM и хранимые процедуры (активное использование)? ORM не может гарантировать целостность данных, которые он загрёб, если выполняются какие-то процедуры, значит преимущества ORM накрываются медным тазом. Попробуй Dapper. Или linq2db. В общем, полноценный ORM тебе не нужен. Тебе нужен простой маппер из сфетченных таблиц коллекции классов. Ну и SQL руками. Забудь про дизайнер. Вообще слово "дизайнер" из лексикона можно убрать. Только хард код. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2017, 12:27 |
|
ORM для Oracle с хорошей поддержкой хранимых процедур
|
|||
---|---|---|---|
#18+
ТройкаСамое интересное, что ODAC компоненты Delphi для доступа к Oracle в этом плане просто супер. Передаешь имя хранимки и они сами генерят ее корректный вызов. Никогда не было с этим проблем, даже не задумывался. И при возврате данных в SYS_REFCURSOR тоже всегда вытягивает столбцы в свое Query в дизайнтайме, делая ее типизированной. При том, что думаю ODAC этому уже лет 10. Разработчики того времени базировались на предположении, что визуальный редактор для построения приложений это гуд. И что таблицы не будут меняться. И что вообще всё будет шоколадно и в розовом цвете, кладёшь себе мышкой на форму копонентики, а там оно "фсё само". Сегодня это не так. Оказалось, что прощё и быстрее писать код. Поэтому всё это стало не нужно. Тем более надо учитывать изначально, что ORM и активное использование хранимок это два противоречивых подхода. Если это будет чисто CRUD-процедуры, которые маппятся на CRUD-действия, и не имееют побочных эффектов, это ещё куда ни шло, с огромной натяжкой, это можно использовать в EF. Но в целом, надо выбирать, тебе или шашечки, или ехать. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2017, 12:31 |
|
ORM для Oracle с хорошей поддержкой хранимых процедур
|
|||
---|---|---|---|
#18+
Тройка, В общем про дизайн тайм забудь. Он не популярен у разработчиков. Он не имеет большого смысла, от него больше вреда чем пользы. Научись писать код и работать с кодом, потому что дизайнеры это тухляк и тупиковый путь. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2017, 12:33 |
|
ORM для Oracle с хорошей поддержкой хранимых процедур
|
|||
---|---|---|---|
#18+
hVosttЗачем ORM и хранимые процедуры (активное использование)? ORM не может гарантировать целостность данных, которые он загрёб, если выполняются какие-то процедуры, значит преимущества ORM накрываются медным тазом. Разработчики того времени базировались на предположении, что визуальный редактор для построения приложений это гуд. И что таблицы не будут меняться. И что вообще всё будет шоколадно и в розовом цвете, кладёшь себе мышкой на форму копонентики, а там оно "фсё само". Сегодня это не так. Оказалось, что прощё и быстрее писать код. Поэтому всё это стало не нужно. код. Спасибо за разъяснения и краткий экскурс в историю. Ушел думать... ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2017, 13:08 |
|
ORM для Oracle с хорошей поддержкой хранимых процедур
|
|||
---|---|---|---|
#18+
ТройкаhVosttЗачем ORM и хранимые процедуры (активное использование)? ORM не может гарантировать целостность данных, которые он загрёб, если выполняются какие-то процедуры, значит преимущества ORM накрываются медным тазом. Разработчики того времени базировались на предположении, что визуальный редактор для построения приложений это гуд. И что таблицы не будут меняться. И что вообще всё будет шоколадно и в розовом цвете, кладёшь себе мышкой на форму копонентики, а там оно "фсё само". Сегодня это не так. Оказалось, что прощё и быстрее писать код. Поэтому всё это стало не нужно. код. Спасибо за разъяснения и краткий экскурс в историю. Ушел думать...Тут можно добавить, что многие задачи по автоматизации рутины, решаемые "раньше" дизайнером, "теперь" решаются кодогенерацией. Рекомендую ознакомиться с T4 Text Template или аналогичными инструментами. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2017, 07:09 |
|
|
start [/forum/topic.php?fid=17&msg=39429122&tid=1349309]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
212ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 312ms |
0 / 0 |