Evitare NHibernate.ObjectNotFoundException

Una delle caratteristiche che rendono “potente” l’utilizzo di ORM nelle nostre web-application, è la possibilità fornitaci dal lazy load.

Tuttavia, può succedere che quando referenziamo un’altra entità (ad esempio utilizzando Fluent NHibernate) il dato che cerchiamo di tirare su non esista. NHibernate restituirà, quindi, un eccezione di tipo NHibernate.ObjectNotFoundException.

Per evitare questa situazione, è necessario mappare la colonna di reference come segue:

1
2
3
4
References(x => x.ProprietàReferenziata)
  .Column("foreignKeyColumn")
  .Not.LazyLoad()
  .NotFound.Ignore();

(via stackoverflow)
(via fluent nhiberante wiki)

Related Posts: