session.Close()和之间有什么区别session.Dispose()?
Sly*_*Sly 22
来自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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
所以Dispose方法调用Close().调用其中之一Close()或Dispose()方法将关闭会话,不再允许您使用它.
调用session.Close()将关闭会话但不会丢弃该对象.
调用session.Dispose()(通常通过使用使用块)将关闭会话,如果它是打开的,并执行额外的操作Dispose().
| 归档时间: |
|
| 查看次数: |
7881 次 |
| 最近记录: |