C# 处理与数据库的连接

C# 处理与数据库的连接,c#,fluent-nhibernate,C#,Fluent Nhibernate,现在我已经做到了: /// <summary> /// Disposing connection to database. /// </summary> public void Dispose() { if (_sessionFactory != null) _sessionFactory.Dispose(); if(_session != null) _session.Dispose(); _sessionFactor

现在我已经做到了:

/// <summary>
/// Disposing connection to database.
/// </summary>
public void Dispose()
{
    if (_sessionFactory != null)
        _sessionFactory.Dispose();

    if(_session != null)
    _session.Dispose();

    _sessionFactory = null;
    _session = null;
}
//
///正在处理与数据库的连接。
/// 
公共空间处置()
{
if(_sessionFactory!=null)
_sessionFactory.Dispose();
if(_session!=null)
_session.Dispose();
_sessionFactory=null;
_会话=空;
}

若要处理与数据库的连接,这是否错误?我是否应该处理会话并将其设置为null,然后让sessionfactory处于“活动”状态?

sessionfactory是一个非常昂贵的对象,需要创建,并且应该在应用程序生命周期中只创建一次

因此,如果您已使用完应用程序,或者您知道在应用程序的生命周期内不需要连接到数据库,则可以处置工厂。否则就让它重复使用

另一方面,会话是一个轻量级对象,可以由SessionFacotry轻松创建。长时间的生活会话可能导致内存泄漏