Verwendung von NHibernate mit ASP.NET 4.LazyInitializationException in ASP.NET app mit NHibernate
Ich habe keine Probleme Abrufen von Objekten gehabt, aber ich habe gerade zu einem Punkt mit verschachtelten Objekten, die ich nicht herausfinden können, .
Ich verwende faul = true und wenn eine faule Last Sammlung Zugriff erhalte ich die Meldung:
Initializing[type#3]-failed to lazily initialize a collection of role: [type], no session or session was closed
Auch wenn ich rufe SessionFactory.OpenSession() unmittelbar vor dem Objekt zugegriffen wird, es macht keinen Unterschied. Ich habe auch versucht, Zugriff auf die Sammlung in einem mit ISession Block zu keinem Glück.
Bearbeiten zum Hinzufügen - Ich habe current_session_context_class = Web in web.config festgelegt, und ich verwende CurrentSessionContext.Bind on BeginRequest.
Kann mir jemand einen Rat geben?
Nicht ein MVC-app
Ich lese diese - nicht wissen, wie genau es ist, und es ist Hibernate: http://opensource.atlassian.com/projects/hibernate/browse/HHH-2878
Es sagt etwas über einen Fehler in many-to-many Beziehungen.
Hier ist meine HBM-Mapping:
<bag name="Objects" table="ObjectInstance" cascade="all" lazy="true">
<key column="branchId" />
<many-to-many class="InventoryObjectInstance" column="objectInstanceId" />
</bag>
Cheers Denis. Nein, es gibt keine Speicheroperation, und wie gesagt, selbst wenn ich explizit vor dem Aufruf eine Sitzung erstelle, gibt es immer noch diese Ausnahme. – Sam
Sie sollten die Sitzung b/c nicht erneut öffnen. In diesem Fall ist es eine andere Sitzung, die nicht in den Objekten wiederverwendet werden kann, die OLD-Sitzung erwarten - Sie müssen denselben Sitzungskontext im aktuellen Anforderungslebenszyklus beibehalten. Sie müssen nur diese Codeblöcke finden (Usings, explizite Aufrufe an die .Close() -Methode), die Ihre Sitzung schließen und sie in Global.asax http://www.codeproject.com/KB/architecture/NHibernateBestPractices zu EndRequest verschieben. aspx –
Siehe auch hier - http: // community.jboss.org/wiki/OpenSessioninView –