NHibernate.LazyInitializationException

У нас эта проблема появлялась время от времени, но теперь я могу воспроизводить ее каждый раз. Я увеличиваю счетчик просмотров на моих пользовательских форумах, что вызывает ошибку:

NHibernate.LazyInitializationException: failed to lazily initialize a collection, no session or session was closed

Эта ошибка возникает в другой коллекции объекта. Если я добавлю:

.Not.LazyLoad ()

К моему беглому отображению, ошибка смещается вокруг моего проекта. Я продолжал отключать отложенную загрузку объектов до тех пор, пока она не достигла места, где отсутствовала отложенная загрузка, а затем он выдал эту ошибку:

NHibernate.LazyInitializationException: Could not initialize proxy - no Session.

Итак, затем я снял с себя ленивую загрузку и теперь вернулся к исходной точке. Это только ошибки, когда я увеличиваю этот счетчик просмотров. Вот фрагмент моего кода сохранения базового класса:

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

Оглядываясь вокруг, я читал в другом посте, что транзакции могут вызвать проблемы, но это было из-за того, где они были размещены. Этот код распространяется на классы, которые отделены от объектов моего домена (классы репозитория). Вот этот пост:

hibernate: LazyInitializationException: не удалось инициализировать прокси

Я не верю, что это моя проблема здесь. Вот мое свободное отображение для первой коллекции, которая выдает ошибку. Есть несколько других подобных коллекций.

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

Ответы на вопрос(2)

Ваш ответ на вопрос