Ответ 1
Из исходного кода Nhibernate:
private void Dispose(bool isDisposing)
{
using (new SessionIdLoggingContext(base.SessionId))
{
if (!base.IsAlreadyDisposed)
{
log.Debug(string.Format("[session-id={0}] executing real Dispose({1})", base.SessionId, isDisposing));
if (!(!isDisposing || base.IsClosed))
{
this.Close();
}
base.IsAlreadyDisposed = true;
GC.SuppressFinalize(this);
}
}
}
Так Dispose вызовы методов Close()
. Вызов методов Close()
или Dispose()
закроет сеанс, не позволяя вам работать с ним больше.