NHibernate:在为插入操作调用flush时接收索引超出范围

时间:2009-12-10 02:19:17

标签: nhibernate insert flush

2 个答案:

答案 0 :(得分:6)

当表中缺少列时,通常会出现此错误。因此,如果某个类具有映射到数据库中缺少的表列的属性,那么您将看到此错误。

基本检查映射与数据库表之间是否存在不匹配(缺少列,类型不匹配等)。问题可能出在相关的表/实体上,而不是您要保存的那个。

答案 1 :(得分:1)

我也有这个问题,经过几个小时的谷歌搜索,我发现这是映射中的一个问题:我有一个列相同的name两次(在我的情况下,它是{{1} },作为<key-property>的一部分,以及<composite-id>元素中的一列。我解决了将<many-to-one>更改为<key-property>并删除<key-many-to-one>元素的问题。