En esta publicación de blog hay un código de ejemplo utilizando CreateSQLQuery de nHibernate que será vulnerable a la inyección de SQL, así como una forma adecuada de escribir la misma consulta utilizando la consulta parametrizada en su marco de ORM para evitar la inyección. Al final del día, sin importar cómo cree consultas SQL, use la conciliación de cadenas u ORM para tratar la entrada como objetos y atributos, si crea consultas dinámicas, el código SQL inyectado puede ejecutarse en la base de datos. Pero si lo parametriza, le está diciendo a la base de datos que una consulta "Seleccionar" o "Insertar" viene con estas dos entradas, por ejemplo, e incluso si las entradas contienen algún código SQL, la base de datos no las ejecuta.