Only God may know what you are doing. 2010/3/16 SedulousTurtle <[email protected]>
> More progress and strange results. > > If I use proxy unpacking, as described in Graham's link, > > http://www.google.com/url?sa=D&q=http://groups.google.com/group/nhusers/browse_thread/thread/fce0810bee14d5b3%23&usg=AFQjCNHVP4FoiQBoi4-C1JZjXwVld7mG2Q > > then it WORKS CORRECTLY! (Thanks Graham!) and will return the expected > Institution object. But why won't it lazy load if I can get it with > unpacking? > > In other words, this breaks: > ----------------------- > string WontLoad = > instrumentList[0].Location.Institution.ToString(); > ----------------------- > > But this works: > ----------------------- > Location unpackedLocation = > (Location)session.GetSessionImplementation() > .PersistenceContext.Unproxy(instrumentList[0].Location); > > Institution unpackedInstitution = > (Institution)session.GetSessionImplementation() > .PersistenceContext.Unproxy(unpackedLocation.Institution); > > string WillLoad = unpackedInstitution.ToString(); > ----------------------- > > > On Mar 16, 10:31 am, Fabio Maulo <[email protected]> wrote: > > If it is null is because there isn't a relation and not because it is a > > proxy. > > > > 2010/3/16 SedulousTurtle <[email protected]> > > > > > > > > > > > > > Fabio, Graham, and John, thank you for your help. From your posts, I > > > now understand how the proxies work a little better -- I don't usually > > > need to worry about replacing them with the proper objects, I just > > > need to make sure I've accessed all the data I need before the session > > > is closed. > > > > > However, I think there's also a more subtle issue I'm facing. I get > > > an error with this code: > > > ---------- > > > IList<Instrument> instrumentList; > > > > > using (ISession ses = NHibernateHelper.OpenSession()) > > > using (ses.BeginTransaction()) > > > { > > > instrumentList = ses.CreateQuery(@"FROM > > > Instrument").List<Instrument>(); > > > string WontLoad = > > > instrumentList[0].Location.Institution.ToString(); > > > > > ses.Transaction.Commit(); > > > } > > > ---------- > > > > > What Happens: NullException, because I call ToString() on Institution, > > > which is null. > > > > > What I Expect: Location.Institution is initially null -- because its a > > > lazy loaded reference stored in a LocationProxy. But I would expect > > > Institution to be lazily loaded when I cann ToString() on it -- and > > > yet that's not what I'm observing. > > > > > I've checked the database thoroughly and am very confident that the > > > data is saved properly. > > > > > My main question: Am I using the NHibernate data retrieval API > > > improperly, or is there something else going on behind the scenes > > > (like an error in my XML mapping) that's preventing lazy loading from > > > operating correctly? > > > > > On Mar 15, 6:42 pm, John Davidson <[email protected]> wrote: > > > > I have found the best performance is to create a separate object for > the > > > > grid and move data from the NHibernate object to the grid object. > Instead > > > of > > > > using a grid hierarchy I put a second grid on the page to manage the > > > child > > > > data and only get the child data after the user makes a selection of > the > > > > parent. Of course the second grid also has its own data object. > > > > > > Doing it like this there is no issue with proxies or sending too much > > > > unnecessary data to the web page. It keeps the web page leaner and > more > > > > responsive. > > > > > > John Davidson > > > > > > On Mon, Mar 15, 2010 at 4:27 PM, Graham Bunce < > [email protected] > > > >wrote: > > > > > > > Sorry, too tired to read the full post and work out what's going on > > > > > for you but look at this thread that I raised with similar > questions: > > > > > > > > http://groups.google.com/group/nhusers/browse_thread/thread/fce0810be. > > > .. > > > > > > > A proxy will always be a proxy unless you force replace it (I > think) > > > > > > > -- > > > > > 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]<nhusers%[email protected]> > <nhusers%[email protected]<nhusers%[email protected]> > > > > > <nhusers%[email protected]<nhusers%[email protected]> > <nhusers%252bunsubscr...@googlegroups.com> > > > > > > > > > . > > > > > For more options, visit this group at > > > > >http://groups.google.com/group/nhusers?hl=en.-Hide quoted text - > > > > > > - Show quoted text - > > > > > -- > > > 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]<nhusers%[email protected]> > <nhusers%[email protected]<nhusers%[email protected]> > > > > > . > > > For more options, visit this group at > > >http://groups.google.com/group/nhusers?hl=en. > > > > -- > > Fabio Maulo- Hide quoted text - > > > > - Show quoted text - > > -- > 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]<nhusers%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/nhusers?hl=en. > > -- 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.
