NHibernate.LazyInitializationException

Wir haben dieses Problem sporadisch auftauchen lassen, aber jetzt kann ich es jedes Mal reproduzieren. Ich erhöhe in meinen benutzerdefinierten Foren einen Ansichtszähler, der einen Fehler verursacht:

NHibernate.LazyInitializationException: Die Initialisierung einer Sammlung ist fehlgeschlagen. Es wurde keine Sitzung oder Sitzung geschlossen

Dieser Fehler tritt bei einer anderen Auflistung im Objekt auf. Wenn ich hinzufüge:

.Not.LazyLoad ()

In meinem Fluent-Mapping verschiebt sich der Fehler um mein Projekt. Ich habe das verzögerte Laden von Objekten immer wieder deaktiviert, bis sie an eine Stelle gelangt sind, an der es kein verzögertes Laden gab, und habe dann den folgenden Fehler ausgegeben:

NHibernate.LazyInitializationException: Proxy konnte nicht initialisiert werden - keine Sitzung.

Also, dann habe ich die Nots auf meinem faulen Laden rausgenommen und jetzt bin ich wieder auf Platz eins. Es treten nur Fehler auf, wenn ich diesen Sichtzähler inkrementiere. Hier ist ein Ausschnitt aus dem Sicherungscode meiner Basisklasse:

using (ISession session = GetSession())
using (ITransaction tx = session.BeginTransaction())
{
       session.SaveOrUpdate(entity);
       tx.Commit();
}

Als ich mich umsah, las ich in einem anderen Beitrag, dass die Transaktionen ein Problem verursachen können, aber das lag daran, wo sie platziert wurden. Dieser Code wird auf Klassen erweitert, die von meinen Domänenobjekten (Repository-Klassen) getrennt sind. Hier ist der Beitrag:

Ruhezustand: LazyInitializationException: Proxy konnte nicht initialisiert werden

Ich glaube nicht, dass das hier mein Problem ist. Hier ist meine fließende Zuordnung für die erste Sammlung, die den Fehler auslöst. Es gibt mehrere ähnliche Sammlungen.

HasManyToMany(x => x.Votes)
    .WithTableName("PostVotes")
    .WithParentKeyColumn("PostId")
    .WithChildKeyColumn("VoteId");

Antworten auf die Frage(2)

Ihre Antwort auf die Frage