2010-08-17 2 views
0

Mon application se compose de deux vues, liste et détails.NHibernate notifier les autres sessions sur les modifications

Chaque instance de vue a sa propre session NHibernate.

Lorsque l'utilisateur enregistre l'entité à partir de la vue détaillée, un événement est publié dans la vue de liste (identifiant de l'entité), après quoi la vue de liste recrée l'entité modifiée en utilisant sa propre session.

Pour la session de vue de la liste pour obtenir la version nouvelle de l'entité modifiée que j'appelle méthode Session.clear() et il fonctionne très bien, mais je commence à me:

Initializing[Core.Domain.Order#0001730]-failed to lazily initialize a collection of role: Core.Domain.Cable.OrderItems, no session or session was closed 

Quelle serait une bonne façon de " synchroniser les sessions et éviter les exceptions de chargement paresseux?

Merci

Répondre

1
Session.Refresh(object); 

vous pourriez avoir à appeler

Session.Evict(object); 

puis

Session.Refresh(object); 

dans certains many-to-one situations.

0

N'utilisez pas de sessions longues. Ils ne sont pas conçus pour synchroniser (c'est pourquoi vous utilisez une base de données?). Session.Clear() ne doit être utilisé que dans des circonstances exceptionnelles.

Questions connexes