NHibernate.LazyInitializationException
Mamy ten problem sporadycznie wyskakujący, ale teraz mogę go odtworzyć za każdym razem. Zwiększam licznik widoków na moich niestandardowych forach, co powoduje błąd:
NHibernate.LazyInitializationException: nie udało się leniwie zainicjować kolekcji, nie zamknięto żadnej sesji ani sesji
Ten błąd występuje w innej kolekcji w obiekcie. Jeśli dodam:
.Not.LazyLoad ()
Do mojego mapowania płynnego błąd przesuwa się wokół mojego projektu. Ciągle wyłączałem leniwe ładowanie obiektów, przechodząc do miejsca, w którym nie było leniwego ładowania, a następnie rzucałem ten błąd:
NHibernate.LazyInitializationException: Nie można zainicjować proxy - brak sesji.
Więc wyjąłem noty na temat mojego leniwego ładowania, a teraz wróciłem do pierwszego. Błąd tylko wtedy, gdy zwiększam ten licznik widoków. Oto fragment mojego kodu składowania klasy bazowej:
using (ISession session = GetSession())
using (ITransaction tx = session.BeginTransaction())
{
session.SaveOrUpdate(entity);
tx.Commit();
}
Rozglądając się, przeczytałem w innym poście, że transakcje mogą powodować problem, ale to z powodu miejsca, w którym zostały umieszczone. Ten kod jest rozszerzony na klasy, które są oddzielone od moich obiektów domeny (klasy repozytoriów). Oto post:
hibernate: LazyInitializationException: nie można zainicjować proxy
Nie wierzę, że to mój problem tutaj. Oto moje płynne mapowanie pierwszej kolekcji, która rzuca błąd. Istnieje kilka innych podobnych kolekcji.
HasManyToMany(x => x.Votes)
.WithTableName("PostVotes")
.WithParentKeyColumn("PostId")
.WithChildKeyColumn("VoteId");