apply conversation pattern. An example is available in uNhAddIns (it need some additional work to support ambient-transaction).Begin/Commit the transaction and let NH to deal with the connection.
2008/11/7 FrederikGheysels <[EMAIL PROTECTED]> > > I am using NHibernate in a WinForms application. > In this application, I make use of 'long sessions'; consider that I > have an ISession that is kept around as long as my Form is open. > > That is: > I load an object using this Session when the form is opened. > When the form is being closed, I check if I have to save the object, > and if so, I save it using the same session. > > During 'user think time', I disconnect the Session, so that the DB > connection is not kept open for a long period of time. > > The issue that I now have, is that my object contains a collection > which is lazy loaded. > Since I disconnect my session once the object has been loaded, I get > an exception offcourse when I want to access the collection of that > object. (I do not always need this collection). > > Therefore, when I need to access the collection, I explicitly > reconnect the Session, and disconnect it afterwards. Offcourse, this > is not very 'transparant' IMHO. > It would be nice if there would be some way to reconnect the session > implicitly; the client should not even know that the collection that I > want to retrieve, is a lazyloaded collection. > > I've tried creating an Intercepter, in where I've overriden the > SetSession, Load and Instantiate methods. In this way, I thought that > I could reconnect the session each time the Load or Instantiate > methods were invoked, and when I saw that the session was > disconnected, I could reconnect the session. > But, this doesn't work. > > Another option, would be that I keep my Session connected during 'user > think time', but IMHO , this is not a viable option; one never knows > how long the Form (and therefore the session) will be kept open, and > connected to the DB. > > Is there any other way on how I could make this a bit more > transparant ? > Maybe it is an idea to add a method to the Interceptor which is > invoked each time something is being lazy loaded (just before it is > lazy loaded) ? > > > -- Fabio Maulo --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "nhusers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/nhusers?hl=en -~----------~----~----~----~------~----~------~--~---
