我有一个使用NHibernate的MVC应用程序。
我创建了一个模型,并尝试首次将数据插入到数据库中 有了NHibernate,请放轻松。
我在session.Save(object);
上遇到此错误IndexOutOfRangeException未被用户代码
处理此SqlParameterCollection的索引8无效,Count = 8。
当我使用监视窗口查看对象中的数据时,似乎都是 确定并且集合也已初始化。
使用SQL 2005。
为什么会出现这种情况的想法呢?
马尔科姆
答案 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
如果没有,您必须发布您的地图以获得更多建议。
我建议首先将插件隔离到单元测试中进行故障排除。