我必须使用自定义 odbc 驱动程序。
我需要作为连接字符串传递的只是 DSN。
我如何用(流利的)nhibernate 做到这一点?FluentNHibernate.Cfg.Db 仅提供带有 DSN 方法的 OdbcConnectionStringBuilder 类。我怎么用这个?
我必须使用自定义 odbc 驱动程序。
我需要作为连接字符串传递的只是 DSN。
我如何用(流利的)nhibernate 做到这一点?FluentNHibernate.Cfg.Db 仅提供带有 DSN 方法的 OdbcConnectionStringBuilder 类。我怎么用这个?
您可以创建自己的OdbcConfiguration
派生自PersistenceConfiguration
.
根据您的数据库,您将不得不替换以下类中的方言。
public class OdbcConfiguration :
PersistenceConfiguration<OdbcConfiguration,
FluentNHibernate.Cfg.Db.OdbcConnectionStringBuilder>
{
protected OdbcConfiguration()
{
Driver<NHibernate.Driver.OdbcDriver>();
}
public static OdbcConfiguration MyDialect // <-- insert any name here
{
get
{
// insert the dialect you want to use
return new OdbcConfiguration().Dialect<NHibernate.Dialect.MyDialect>();
}
}
}
然后,在 Fluent NHibernate 中,使用OdbcConfiguration
:
// replace MyDialect here, too
Fluently.Configure()
.Database(OdbcConfiguration.MyDialect.ConnectionString("DSN=...;UID=...;PWD=...")
.Driver<NHibernate.Driver.OdbcDriver>()
.Dialect<NHibernate.Dialect.MyDialect>() // <-- again, change this
.etc...
快速搜索后没有找到任何使用 OdbcConnectionStringBuilder 的示例代码。Fluent NHibernate 似乎没有对应的“OdbcConfiguration”对象与 OdbcConnectionStringBuilder 一起使用。如果您不使用 Fluent NHibernate 来配置数据库(尽管您仍然可以使用 Fluent 进行所有对象映射),您可以通过 hibernate.cfg.xml 文件进行配置,查看使用 ODBC 提供程序的DB2 示例配置。