NHibernate vous permet de faire de la programmation orientée objet et se charge en coulisse d'aller chercher les objets dans la base de données et de les y enregistrer.
NHibernate ne vous fournit pas d'API simple pour exécuter des procédures stockées, car cela ne semble pas avoir grand-chose à voir avec la programmation orientée objet, qu'il s'agisse d'aller chercher des objets ou de les enregistrer.
Vous faites donc quelque chose de fondamentalement mauvais en essayant d'utiliser NHibernate directement pour exécuter du code hautement procédural. Si vous voulez utiliser NHibernate, vous devez lui expliquer comment l'exécution de cette procédure stockée en arrière-plan va magiquement faciliter l'extraction et l'enregistrement d'objets dans la base de données.
Vous pouvez :
- Utilisez ADO.NET directement, en ouvrant une nouvelle
IDbConnection
ou obtenir le ISession
en créant une IDbCommand
etc. Faites-le si vous avez besoin d'une approche ponctuelle pour exécuter des procédures stockées.
- Créez un écouteur NHibernate et configurez-le dans le fichier
Configuration
pour exécuter cette procédure stockée lorsque certains autres événements sont envoyés par le pipeline NHibernate. Ne le faites que si cette procédure stockée doit être exécutée à chaque fois et uniquement lorsque ces événements se produisent.