处理与数据库的连接

时间:2014-03-02 15:17:34

标签: c# fluent-nhibernate

现在我已经这样做了:

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

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

    _sessionFactory = null;
    _session = null;
}

要将Connection部署到数据库,这是错误的吗?我应该只处理会话并将其设置为null并让sessionfactory“活着”吗?

1 个答案:

答案 0 :(得分:2)

SessionFactory是一个非常昂贵的对象,应该在应用程序生命周期中创建一次。

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

另一方面,Session是一个轻量级对象,可以通过SessionFacotry轻松创建。长寿会议可能会导致内存泄漏。