Utilisation de NHibernate avec ASP.NET 4.LazyInitializationException dans l'application ASP.NET avec NHibernate
J'ai eu aucun problème récupérer des objets, mais je dois juste un point avec des objets imbriqués que je ne peux pas comprendre .
J'utilise paresseux = true et quand l'accès à une collection charge paresseux je reçois le message:
Initializing[type#3]-failed to lazily initialize a collection of role: [type], no session or session was closed
Même si je l'appelle sessionFactory.openSession() immédiatement avant l'objet accédée, il ça ne fait aucune différence. J'ai également essayé d'accéder à la collection dans un bloc ISession pour ne pas avoir de chance.
Modifier pour ajouter - J'ai current_session_context_class = web dans web.config, et j'utilise CurrentSessionContext.Bind sur BeginRequest.
Quelqu'un peut-il offrir quelques conseils?
Pas une application MVC
je lis ceci - ne sais pas comment elle est précise, et il est Hibernate: http://opensource.atlassian.com/projects/hibernate/browse/HHH-2878
Il dit quelque chose au sujet d'un bug dans plusieurs à plusieurs des relations.
Voici ma carte HBM:
<bag name="Objects" table="ObjectInstance" cascade="all" lazy="true">
<key column="branchId" />
<many-to-many class="InventoryObjectInstance" column="objectInstanceId" />
</bag>
Acclamations Denis. Non, il n'y a pas d'opération de sauvegarde, et comme je l'ai dit, même en créant explicitement une session avant l'appel me donne toujours cette exception. – Sam
Vous ne devez pas rouvrir la session b/c dans ce cas, il s'agit d'une session différente qui ne peut pas être réutilisée dans les objets qui attendent la session OLD - vous devez conserver le même contexte de session dans le cycle de vie de la requête en cours. Vous avez juste besoin de localiser ces blocs de code (utilisations, appels explicites à la méthode .Close()) qui sont en train de fermer votre session et de la déplacer vers EndRequest dans Global.asax http://www.codeproject.com/KB/architecture/NHibernateBestPractices. aspx –
Voir ici aussi - http: // communauté.jboss.org/wiki/OpenSessioninView –