【发布时间】:2010-09-21 19:39:52
【问题描述】:
我想在运行时检索配置文件中指定的“dialect”和“connection.driver_class”属性的值。
你知道怎么做吗?
非常感谢, 尼古拉
【问题讨论】:
标签: nhibernate hibernate
我想在运行时检索配置文件中指定的“dialect”和“connection.driver_class”属性的值。
你知道怎么做吗?
非常感谢, 尼古拉
【问题讨论】:
标签: nhibernate hibernate
感谢您的回答。 我不喜欢该解决方案的一件事是我需要保留配置并在需要方言知识的方法中传递它。
我发现了其他几个方法,只需要引用 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;
}
【讨论】:
当您构建配置对象并加载 XML 并最终构建 SessionFactory 时,请继续使用您拥有的配置对象引用。
您可以使用您拥有的配置参考的 Properties 对象,或者您可以执行类似 Dialect.GetDialect(_configuration.Properties) 之类的操作。
【讨论】: