我必须使用自定义 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...
关于nhibernate - 是否可以通过 odbc 连接使用(流畅)nhibernate?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5676812/