Ok, thanks. I found good explanation in NHibernate.ObjectNotFoundException summary :
Thrown when ISession.Load() fails to select a row with the given primary key (identifier value). This exception might not be thrown when Load() is called, even if there was no row on the database, because Load() returns a proxy if possible. Applications should use ISession.Get() to test if a row exists in the database. Mabye Session.Load method comment / summary should be updated with above info. I'll create LoadExisting(int id) method in my generic Dao, which will do simple var entity=Get(); and if(entity==null) throw ObjectNotFoundException(..). Moving on. regards, Tomasz M. On 19 Lut, 13:42, Roger Kratz <[email protected]> wrote: > Read the difference between Load and > Gethttp://nhforge.org/doc/nh/en/index.html#manipulatingdata-loading > > -----Original Message----- > From: [email protected] [mailto:[email protected]] On Behalf Of > Tomasz Modelski (IDev) > Sent: den 19 februari 2010 13:21 > To: nhusers > Subject: [nhusers] Re: Session.Load<TEntity>(id) if id doesn't exist behavior > > John. > > When lazy=true on class level, Load(34534535) exception is not thrown. > [34534535 - some not existing id]. > But exception is thrown when I access returned entity proxy id > property - that's the difference, when Load(0) - returned proxy has > id=0 value. > > On 19 Lut, 13:05, John Davidson <[email protected]> wrote: > > Id = 0 is a special case in NHibernate unless you specify differently using > > the 'unsaved-value' attribute in the 'id' property of your entity mapping > > file. > > > What happens when you try Sessio.Load<TEntity>(1001>? > > > John Davidson > > > On Fri, Feb 19, 2010 at 6:46 AM, Tomasz Modelski (IDev) < > > > [email protected]> wrote: > > > Hi. > > > > As I understand, Session.Load<TEntity>(id) should return proper entity > > > or throw exception if entity with such id doesn't exist. > > > Is it true ? > > > > Right now I'm debugging code when Session.Load<TEntity>( 0 ) returns > > > not-null and doesn't throw exception, and there is not TEntity with id > > > 0 in database. > > > Returned object is some TEntity proxy with properties throwing > > > exceptions when accessed. > > > > I'm using NHibernate v. 2.1.2.4000. > > > > -- > > > 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. > > -- > 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 > athttp://groups.google.com/group/nhusers?hl=en. -- 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.
