NHibernate.LazyInitializationException

Nous avons eu ce problème de pop up de façon sporadique, mais maintenant je peux le reproduire à chaque fois. Je suis en incrémentant un compteur de vue sur mon custom construit des forums, ce qui provoque une erreur:

NHibernate.LazyInitializationException: échec paresseusement initialiser une collection, pas de session ou la session a été fermée

Cette erreur se produit sur une autre collection à l'objet. Si j'ajoute:

.Pas.LazyLoad()

À mon Couramment la cartographie, l'erreur déplace autour de mon projet. J'ai gardé la désactivation de chargement différé sur les objets intil il va à un endroit où il n'y a pas de chargement paresseux, et puis il l'a jeté cette erreur:

NHibernate.LazyInitializationException: impossible d'initialiser le proxy - pas de Session.

Puis j'ai pris le nots sur mon chargement paresseux et maintenant je suis de retour à la case départ. Il ne des erreurs lorsque j'incrémenter ce compteur de vue. Voici un extrait de ma classe de base enregistrer le code:

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

En regardant autour, j'ai lu dans un autre post que les transactions peuvent causer un problème, mais que c'était à cause de l'endroit où ils étaient placés. Ce code est étendu à des catégories distinctes de mon domaine d'objets (classes de dépôt). Voici le post:

hibernate: LazyInitializationException: impossible d'initialiser le proxy

Je ne crois pas que c'est mon problème ici. Voici mon couramment cartographie pour la première collection, qui est de lancer l'erreur. Il y a plusieurs autres collections similaires.

HasManyToMany(x => x.Votes)
    .WithTableName("PostVotes")
    .WithParentKeyColumn("PostId")
    .WithChildKeyColumn("VoteId");
stackoverflow.com/questions/1117633/... Ma question est similaire.

OriginalL'auteur Josh | 2009-07-14