Como manter consistentes os dados da sessão NHibernate de longa execução?

Tenho sessões do NHibernate em cache na sessão do ASP.NET.

Me deparei com uma situação em que um usuário editava um objeto para que ele estivesse em seu cache de primeiro nível na ISession. Outro usuário editou o mesmo objeto.

Nesse ponto, o usuário1 ainda vê sua versão original de suas edições, enquanto o usuário2 vê o estado correto do objeto?

Qual é a maneira correta de lidar com isso sem chamar manualmente session.Refresh (myObj) explicitamente para cada objeto o tempo todo?

Eu também tenho um cache de segundo nível ativado. Para o NHibernate Long Session, devo apenas desativar completamente o cache de primeiro nível?

Editar: Adicionando um pouco mais de terminologia ao que pretendo alcançar com10.4.1 Sessão longa com controle de versão automático o final desta seção termina com

Como o ISession também é o cache de primeiro nível (obrigatório) e contém todos os objetos carregados, é possível usar essa estratégia de maneira apropriada apenas por alguns ciclos de solicitação / resposta. Isso é realmente recomendado, pois o ISession em breve também terá dados obsoletos.

Não tenho certeza de que tipo de documentação é essa, para incluir provavelmente e, em seguida, dizer imediatamente que a sessão terá dados obsoletos (que é o que estou vendo). Qual é a solução para isso aqui ou não existe?

questionAnswers(3)

yourAnswerToTheQuestion