如何发布数据库文件? (NHibernate和嵌入式Firebird数据库)

时间:2015-08-31 13:56:43

标签: c# nhibernate firebird firebird2.5 firebird-embedded

我们正在使用Nhibernate连接到本地firebird数据库文件。我们目前加载嵌入式,但在某些情况下需要释放它,以便可以移动或删除磁盘上的文件。简单地在nhibernate中关闭和处理sessionfactory不起作用。该文件仍在使用中。

using (ISessionFactory sessionFactory = configuration.BuildSessionFactory())
{
    using (ISession session = sessionFactory.OpenSession())
    {
        using (System.Data.IDbCommand command = session.Connection.CreateCommand())
        {
            // commands removed
        }
    }

    sessionFactory.Close();
}

// file is still "in use" here

这可能或我们需要开始一个单独的过程吗?

1 个答案:

答案 0 :(得分:2)

无需禁用池。我在我的很多项目中使用NHibernate + FB Embedded。在代码中的适当位置尝试FbConnection.ClearAllPools()(在您完成使用会话工厂之后,似乎就是这种情况)。您需要在项目中添加对FB提供程序程序集的引用。