NHibernate.LazyInitializationException
Temos tido esse problema esporadicamente, mas agora posso reproduzi-lo sempre. Estou incrementando um contador de visualizações em meus fóruns personalizados, o que causa um erro:
NHibernate.LazyInitializationException: falha ao inicializar preguiçosamente uma coleção, nenhuma sessão ou sessão foi fechada
Este erro ocorre em outra coleção no objeto. Se eu adicionar:
.Not.LazyLoad ()
Para o meu mapeamento Fluente, o erro muda em torno do meu projeto. Eu continuei desabilitando o carregamento lento nos objetos até ele ir para um local onde não havia carregamento lento e, em seguida, ele emitiu esse erro:
NHibernate.LazyInitializationException: não foi possível inicializar o proxy - sem sessão.
Então tirei o nots do meu carregamento lento e agora estou de volta à estaca zero. Só erros quando eu incrementar este contador de visão. Aqui está um trecho do meu código de salvamento da classe base:
using (ISession session = GetSession())
using (ITransaction tx = session.BeginTransaction())
{
session.SaveOrUpdate(entity);
tx.Commit();
}
Olhando em volta, li em outro post que as transações podem causar um problema, mas isso foi por causa de onde elas foram colocadas. Esse código é estendido para classes separadas dos meus objetos de domínio (classes de repositório). Aqui está o post:
hibernate: LazyInitializationException: não foi possível inicializar o proxy
Eu não acredito que esse é o meu problema aqui. Aqui está o meu mapeamento fluente para a primeira coleção que está jogando o erro. Existem várias outras coleções semelhantes.
HasManyToMany(x => x.Votes)
.WithTableName("PostVotes")
.WithParentKeyColumn("PostId")
.WithChildKeyColumn("VoteId");