5

カスタムodbcドライバーを使用する必要があります。

接続文字列として渡す必要があるのはDSNだけです。

(流暢な)nhibernateでこれを行うにはどうすればよいですか?FluentNHibernate.Cfg.Dbは、DSNメソッドを持つOdbcConnectionStringBuilderクラスのみを提供します。これはどのように使用しますか?

4

2 に答える 2

9

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...
于 2011-04-15T14:03:41.733 に答える
1

クイック検索後、OdbcConnectionStringBuilderを使用したサンプルコードが見つかりませんでした。Fluent NHibernateには、OdbcConnectionStringBuilderで使用する対応する「OdbcConfiguration」オブジェクトがないようです。データベースの構成にFluentNHibernateを使用しない場合(ただし、すべてのオブジェクトマッピングにFluentを使用できます)、hibernate.cfg.xmlファイルを介して構成できます。ODBCプロバイダーを使用するためのDB2サンプル構成を参照してください。

于 2011-04-15T14:01:16.237 に答える