Los ORM no se excluyen mutuamente con los procedimientos almacenados. La mayoría de los ORM pueden utilizar procedimientos almacenados. La mayoría de los ORM generan procedimientos almacenados si así lo desea. Así que el problema tampoco es o.
Los ORM pueden generar un SQL inaceptable (en términos de rendimiento) y algunas veces es posible que desee anular ese SQL con un SQL creado a mano. Una de las formas de lograr esto es mediante el uso de SP.
En DotNet, no utilice procedimientos almacenados si:
-
Si no está familiarizado con los procedimientos almacenados (no es su caso, pero se incluye para completar).
-
Si no quieres introducir una capa de complejidad y versificación para tu proyecto.
-
Está creando una aplicación que debería funcionar con diferentes bases de datos o que tendría que replicarse en varios servidores de bases de datos (esta última restricción puede aplicarse solo a algunas bases de datos).
Tenga en cuenta que los desencadenantes no deben compararse con los ORM. Los activadores realizan funciones que es mejor que no estén en el código de la aplicación (como el registro o la sincronización de datos entre bases de datos).
Algunas personas prefieren el uso de procedimientos almacenados en lugar de SQL en el código por diferentes motivos, como la seguridad (por ejemplo, para evitar la inyección de SQL) y por su velocidad declarada. Sin embargo, esto es algo discutible y necesita una discusión detallada.
Si su ORM no puede generar procedimientos almacenados, y tiene que escribir un sistema grande, entonces necesita ponderar la codificación manual adicional basada en su caso.