2010-04-21 11 views

risposta

16

StatelessSession non tiene traccia delle modifiche apportate alle entità e non ha un supporto di caricamento lazy. Ecco perché ha una prestazione migliore di Session.

Ma con la sessione senza stato si è costretti a gestire manualmente le operazioni di inserimento, cancellazione, aggiornamento e questo risulta davvero scomodo.

sessione Stateless è fatta per le operazioni batch in cui è necessario fare un sacco di domande al database e non hai bisogno di tenere traccia delle modifiche, ecc

+0

Ci sono diversi casi d'uso pure. Ad esempio, quando si dispone di un database di piccole dimensioni e si desidera conservare tutto ciò in memoria per l'intera durata dell'applicazione e occorre che il database sia in grado di ripristinare lo stato dell'applicazione dopo averlo riavviato. In questo caso, 'IStatelessSession' ti salva dall'overhead delle prestazioni associato al caricamento lento, alla fusione ecc .... ovviamente ciò significa anche che dovrai implementare una sorta di tracciamento delle modifiche, ad es. con un'implementazione personalizzata del modello Unit of Work. Ovviamente, NHibernate potrebbe non essere la soluzione migliore per quel caso d'uso ... – chris