NHibernate consente di eseguire la programmazione orientata agli oggetti e si occupa di prelevare gli oggetti da e salvare gli oggetti nel database dietro le quinte.
NHibernate non fornisce un'API semplice per eseguire semplicemente stored procedure, perché non sembra avere molto a che fare con la programmazione orientata agli oggetti, sia che prelevi oggetti o che li salvi.
Quindi stai facendo qualcosa di fondamentalmente sbagliato nel tentativo di utilizzare direttamente NHibernate per eseguire codice altamente procedurale. Se vuoi usare NHibernate, devi dire come l'esecuzione di questa stored procedure dietro le quinte ti aiuterà magicamente a prelevare oggetti da e salvare oggetti nel database.
è possibile:
- utilizzare ADO.NET direttamente, aprendo un nuovo
IDbConnection
o di ottenere il collegamento s il ISession
', la creazione di un IDbCommand
, ecc Fate questo se avete bisogno di un approccio one-off per l'esecuzione memorizzata procedure.
- Creare un listener NHibernate e configurarlo nello
Configuration
, per eseguire questa stored procedure quando determinati altri eventi vengono inviati attraverso la pipeline NHibernate. Esegui questa operazione solo se questa stored procedure deve essere effettivamente eseguita ogni volta e solo quando si verificano questi eventi.
Io non lo definirei un "limite", più come "by design". – mxmissile