2

Fluent NHibernate を使用して AS/400 iSeries DB2 サーバーに接続しようとしています。次のコードがあります。

private static ISessionFactory CreateSessionFactory()
{
    return Fluently.Configure()
        .Database(DB2Configuration.Standard.ConnectionString("DataSource=MyServer;UserID=MyUser;Password=password;"))
        .Mappings(m => m.FluentMappings.AddFromAssembly(Assembly.GetExecutingAssembly()))
        .BuildSessionFactory();
}

nhprof を実行していますが、次のエラーが表示されます: ファイルまたはアセンブリ 'IBM.Data.DB2' またはその依存関係の 1 つをロードできませんでした。指定されたファイルが見つかりません。タイプ IBM.Data.DB2.DB2Command、IBM.Data.DB2 をロードできませんでした。

IBM.Data.DB2.dll が iSeries の不適切な .dll であることはわかっています。私のbinフォルダーにあるIBM.Data.DB2.iSeries.dllをロードしているはずです。

NHibernate には、iSeries dll をロードする方法があります。Fluent にロードするように指示するにはどうすればよいですか?

4

1 に答える 1

4

他の誰かがこれに苦労している場合に備えて、私はそれを理解しました。

nhibernate.cfg.xml ファイルを取り出し、コードで実行しました。このコードは機能しているようです:

private static ISessionFactory CreateSessionFactory()
{
    ISessionFactory factory = null;

    var cfg = new Configuration();
    cfg.DataBaseIntegration(x =>
    {
        x.ConnectionString = "DataSource=MyServer;UserID=MyUser;Password=password; DataCompression=True;";
        x.Dialect<DB2400Dialect>();
        x.Driver<DB2400Driver>();
    });

    factory = Fluently.Configure(cfg)
        .Mappings(m => m.FluentMappings.AddFromAssembly(Assembly.GetExecutingAssembly()))
        .BuildSessionFactory();

    return factory;
}
于 2012-08-25T03:26:32.917 に答える