ORM (Об'єктно-реляційне відображення) не є взаємовиключними із збереженими процедурами. Більшість ORM можуть використовувати збережені процедури. Більшість ORM генерують збережені процедури, якщо ви вирішите. Тож це питання не є або.
ORM можуть генерувати неприйнятний SQL (з точки зору продуктивності), а іноді, можливо, ви захочете замінити цей SQL на створений вручну SQL. Один із способів досягти цього - за допомогою SP (збережених процедур).
У DotNet не використовуйте збережені процедури, якщо:
Якщо ви не знайомі зі збереженими процедурами (не ваш випадок, але включені для повноти).
Якщо ви не хочете вносити у свій проект шар складності та перекладу.
Ви створюєте додаток, який повинен працювати з різними базами даних або мав би бути тиражований на декількох серверах баз даних (останнє обмеження може застосовуватися лише для деяких баз даних).
Зауважте, що тригери не можна порівнювати з ORM. Тригери виконують функції, які краще не містити у коді програми (наприклад, реєстрація чи синхронізація даних у базі даних).
Деякі люди віддають перевагу використанню збережених процедур над SQL у коді з різних причин, таких як безпека (наприклад, для запобігання ін'єкції SQL) та швидкість, яку вони заявляють. Однак це дещо дискусійно і потребує детального обговорення.
Якщо ваш ORM не може генерувати збережені процедури, і вам потрібно написати велику систему, то вам потрібно зважити додаткове кодування вручну, залежно від вашого випадку.