Итак, у меня есть AS400/iSeries, работающий под управлением v5r4. У меня есть приложение, которое использует классический NHibernate для подключения и выполнения некоторых основных crud. Теперь я вытащил это приложение (которое сидел на 2 года) с полки TFS и на новый компьютер и, похоже, не смог запустить его.проблема с NHibernate и iSeries DB2
Вот мой Hibernate Config:
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
<property name="connection.provider">
NHibernate.Connection.DriverConnectionProvider
</property>
<property name="dialect">
NHibernate.Dialect.DB2400Dialect
</property>
<property name="proxyfactory.factory_class">NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu</property>
<property name="connection.connection_string">
DataSource=207.206.106.19;
Database=AS400;
userID=XXXXXX;
Password=XXXXXXX;
LibraryList=FMSFILTST,BEFFILT,HRDBFT,HRCSTFT,J20##X2DEV,GLCUSTDEV,[email protected]@F3DEV;
Naming=System;
Initial Catalog=*SYSBAS;
</property>
<property name="use_outer_join">true</property>
<property name="query.substitutions">
true 1, false 0, yes 'Y', no 'N'
</property>
<property name="show_sql">false</property>
<mapping assembly="BusinessLogic" />
</session-factory>
</hibernate-configuration>
У меня есть все, собственно DLL файлы включены (NHibernate, замок, Iesi, antlr3, log4 и т.д.). Также есть эта линия в моем web.config
<runtime>
<assemblyBinding>
<qualifyAssembly partialName="IBM.Data.DB2.iSeries" fullName="IBM.Data.DB2.iSeries,Version=10.0.0.0,PublicKeyToken=9CDB2EBFB1F93A26,Culture=neutral"/>
</assemblyBinding>
</runtime>
Но я все еще получаю следующее сообщение об ошибке, как только я называю
NHibernate.Cfg.Configuration().Configure().BuildSessionFactory().OpenSession();
Ошибка заключается в следующем
Невозможно бросить объект типа 'IBM.Data.DB2.iSeries.iDB2Connection' для ввода 'System.Data.Common.DbCommand'
Я умираю, чтобы помочь с этим. Любая помощь приветствуется. Благодаря!
1. Какую версию NHibernate вы используете? 2. Можете ли вы открыть тип iDB2Connection и посмотреть, действительно ли он не наследуется от DbCommand? –