session.Save上的NHibernate错误

时间:2009-04-13 07:08:05

标签: nhibernate

我有一个使用NHibernate的MVC应用程序。

我创建了一个模型,并尝试首次将数据插入到数据库中 有了NHibernate,请放轻松。

我在session.Save(object);

上遇到此错误

IndexOutOfRangeException未被用户代码

处理

此SqlParameterCollection的索引8无效,Count = 8。

当我使用监视窗口查看对象中的数据时,似乎都是 确定并且集合也已初始化。

使用SQL 2005。

为什么会出现这种情况的想法呢?

马尔科姆

3 个答案:

答案 0 :(得分:12)

我自己使用NHibernate也有同样的问题,我的情况就是映射中的问题。 在我的关联上,我已经映射了一个包含关联实体的属性,以及一个只有关联ID的属性。

我的解决方案是将update="false" insert="false"添加到包含ID的属性的映射中。 像这样:

<property name="AssociationId" column="AssociationColumnName" update="false" insert="false" />
<many-to-one name="Association" column="AssociationColumnName" property-ref="Id" not-null="false" />

答案 1 :(得分:2)

伙计,如果你得到这个检查映射文件,我有相同的错误,我有两个属性映射到同一列,我知道答案是很晚这是为那些来寻找答案的用户同样的问题。

注意:这可能不是唯一的原因,无论如何我的是这个原因。

答案 2 :(得分:0)

其中一个链接是否有帮助?

http://groups.google.com/group/nhusers/browse_thread/thread/34f124a7052c37ff

http://www.methodicmadness.com/2009/01/nhibernate-what-is-heck-clazz.html

http://groups.google.com/group/fluent-nhibernate/browse_thread/thread/116c822c44aae797

如果没有,您必须发布您的地图以获得更多建议。

我建议首先将插件隔离到单元测试中进行故障排除。