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

7 nhibernate hibernate

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

你知道怎么做吗?

非常感谢,Nicola

小智 19

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

我发现了其他几种只需要引用ISessionFactory的ISession的方法.

来自ISession:

    public static Dialect GetDialect(ISession session)
    {
        Dialect dialect = session.GetSessionImplementation().Factory.Dialect;
        return dialect;
    }
Run Code Online (Sandbox Code Playgroud)

从ISessionFactory:

    public static Dialect GetDialect(ISessionFactory sessionFactory)
    {
        var implementor = sessionFactory as ISessionFactoryImplementor;
        Dialect dialect = implementor.Dialect;
        return dialect;
    }
Run Code Online (Sandbox Code Playgroud)


cha*_*ers 4

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

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