我正在尝试使用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'或其中一个依赖项。系统找不到指定的文件。无法加载IBM.Data.DB2.DB2Command类型,IBM.Data.DB2。
我知道IBM.Data.DB2.dll是iSeries的错误.dll。它应该加载IBM.Data.DB2.iSeries.dll,它位于我的bin文件夹中。
NHibernate有一种加载iSeries dll的方法。如何告诉Fluent加载它?
答案 0 :(得分: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;
}