カスタム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には、OdbcConnectionStringBuilderで使用する対応する「OdbcConfiguration」オブジェクトがないようです。データベースの構成にFluentNHibernateを使用しない場合(ただし、すべてのオブジェクトマッピングにFluentを使用できます)、hibernate.cfg.xmlファイルを介して構成できます。ODBCプロバイダーを使用するためのDB2サンプル構成を参照してください。