是否可以将(fluent)nhibernate与odbc连接一起使用?

是否可以将(fluent)nhibernate与odbc连接一起使用?,nhibernate,fluent-nhibernate,odbc,dsn,Nhibernate,Fluent Nhibernate,Odbc,Dsn,我必须使用自定义odbc驱动程序 我只需要将DSN作为连接字符串传递 如何使用(流利的)nhibernate实现这一点?FluentNHibernate.Cfg.Db仅提供带有DSN方法的OdbcConnectionStringBuilder类。我怎么用这个 快速搜索后,未找到使用OdbcConnectionStringBuilder的任何示例代码。Fluent NHibernate似乎没有与OdbcConnectionStringBuilder一起使用的对应“OdbcConfiguration

我必须使用自定义odbc驱动程序

我只需要将DSN作为连接字符串传递


如何使用(流利的)nhibernate实现这一点?FluentNHibernate.Cfg.Db仅提供带有DSN方法的OdbcConnectionStringBuilder类。我怎么用这个

快速搜索后,未找到使用OdbcConnectionStringBuilder的任何示例代码。Fluent NHibernate似乎没有与OdbcConnectionStringBuilder一起使用的对应“OdbcConfiguration”对象。如果不使用Fluent NHibernate来配置数据库(但仍然可以使用Fluent进行所有对象映射),则可以通过hibernate.cfg.xml文件进行配置,请查看用于使用ODBC提供程序的。

您可以创建自己的
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>();
        }
    }
} 

我想是这样,但不确定这有多容易。奇怪的是,它不像其他常见数据库那样内置。@Florian Lim可以使用DentrixSQL映射表bcoz im,并且只能通过使用SDK API和obdc进行操作
// 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...