【发布时间】:2011-08-03 05:20:25
【问题描述】:
已经开始在 sybase ASE 数据上使用 NHibernate,面临的问题是当我加载实体时出现以下错误
“System.IndexOutOfRangeException : 此 OdbcParameterCollection 的索引 0 无效,Count=0。”
这就是我配置会话的方式
properties["connection.provider"] = "NHibernate.Connection.DriverConnectionProvider";
properties["connection.driver_class"] = "NHibernate.Driver.OdbcDriver";
properties["connection.connection_string"] = @"Driver={Adaptive Server Enterprise};server=;port=; db=;uid=;pwd=";
properties["dialect"] = "NHibernate.Dialect.SybaseASE15Dialect";
和对象映射
<class name="MenuGroup" table="MENU_GROUP">
<id name="Id" column="id" type="Int32">
<generator class="identity" />
</id>
<property name="Name" column="name" type="String" length="100" not-null="true" />
<property name="Position" column="position" type="Int32" />
</class>
如果我这样做了
var menuGroup = _session.Get<Menu.MenuGroup>(1);
我收到错误
NHibernate.Exceptions.GenericADOException : 无法加载实体: [DomainModel.Menu.MenuGroup#1][SQL: SELECT menugroup0_.id as id1_0_, menugroup0_.name as name1_0_, menugroup0_.position as position1_0_ FROM MENU_GROUP menugroup0_ WHERE menugroup0_ .id=?] ----> System.IndexOutOfRangeException : 此 OdbcParameterCollection 的索引 0 无效,Count=0。
【问题讨论】:
-
我在自动取款机上遇到了同样的问题。我正在尝试让我的解决方案与 NHibernate 3.2 一起使用。你用的是什么版本?
-
3.2.0.4,任何想法如果更改为旧版本会有所帮助
-
嗯,我们的解决方案曾经与 SQL Anywhere 10 一起使用,但我们昨天迁移到了 12。我使用基于 .net framework 2.0 的 NHibernate 2.1.2 GA 运行它。今天我已经开始实施 NHibernate 3.2.0.4000 (3.2 GA),但现在我所有的查询单元测试都因您描述的错误而失败。
-
试试 NHibernate.Driver.SybaseSQLAnywhereDriver,应该会有帮助
标签: nhibernate