Pare a injeção de ISession e comece a injetar ISessionFactory. Algumas vezes você precisará abrir a sessão sem estado e agora pode.
Qualquer na minha empresa, implementamos um SessionManager que mantém toda a lógica de sessão aberta. Temos apenas 3 métodos:
– GetSession () => que retorna a sessão aberta atual do contexto ou inicia uma nova.
– GetExclusiveSession () => que sempre retorna uma nova sessão, e deve ser usado no uso de bloco. Precisamos disso porque em um aplicativo às vezes precisamos de 2 transações na mesma solicitação.
– GetStatelessSession () => mesmo que GetSession () mas sem estado.