NHibernate:在运行时访问配置属性(Sql方言)

时间:2008-11-11 14:52:51

标签: nhibernate hibernate

我想在运行时检索配置文件中指定的“dialect”和“connection.driver_class”属性的值。

你知道怎么做吗?

非常感谢, 尼古拉

2 个答案:

答案 0 :(得分:19)

谢谢你的回答。 在该解决方案中我不喜欢的一件事是我需要保留配置并在需要方言知识的方法中传递它。

我发现了其他一些只需要引用ISessionFactory的ISession的方法。

来自ISession:

    public static Dialect GetDialect(ISession session)
    {
        Dialect dialect = session.GetSessionImplementation().Factory.Dialect;
        return dialect;
    }

来自ISessionFactory:

    public static Dialect GetDialect(ISessionFactory sessionFactory)
    {
        var implementor = sessionFactory as ISessionFactoryImplementor;
        Dialect dialect = implementor.Dialect;
        return dialect;
    }

答案 1 :(得分:4)

当您构建Configuration对象并加载XML并最终构建SessionFactory时,请继续使用您拥有的Configuration对象引用。

您可以使用您拥有的Configuration引用的Properties对象,或者您可以执行类似Dialect.GetDialect(_configuration.Properties)的操作。