NHibernate火鸟错误-索引超出范围
本文关键字:范围 索引 火鸟 错误 NHibernate | 更新日期: 2023-09-27 18:08:09
当使用NHibernate和Firebird数据库时,什么会导致c#中的以下错误?
2015-08-17 08:27:04,962 [21] [(null)] ERROR Smartsign.Server.Core.Server Unhandled exception: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
at System.ThrowHelper.ThrowArgumentOutOfRangeException()
at System.Collections.Generic.List`1.get_Item(Int32 index)
at FirebirdSql.Data.FirebirdClient.FbParameterCollection.get_Item(Int32 index) in c:'Users'Jiri'Documents'devel'NETProvider'working'NETProvider'src'FirebirdSql.Data.FirebirdClient'FirebirdClient'FbParameterCollection.cs:line 58
at FirebirdSql.Data.FirebirdClient.FbParameterCollection.GetParameter(Int32 index) in c:'Users'Jiri'Documents'devel'NETProvider'working'NETProvider'src'FirebirdSql.Data.FirebirdClient'FirebirdClient'FbParameterCollection.cs:line 315
at System.Data.Common.DbParameterCollection.System.Collections.IList.get_Item(Int32 index)
at NHibernate.Type.Int32Type.Set(IDbCommand rs, Object value, Int32 index)
at NHibernate.Type.NullableType.NullSafeSet(IDbCommand cmd, Object value, Int32 index)
at NHibernate.Type.NullableType.NullSafeSet(IDbCommand st, Object value, Int32 index, ISessionImplementor session)
at NHibernate.Persister.Entity.AbstractEntityPersister.Dehydrate(Object id, Object[] fields, Object rowId, Boolean[] includeProperty, Boolean[][] includeColumns, Int32 table, IDbCommand statement, ISessionImplementor session, Int32 index)
at NHibernate.Persister.Entity.AbstractEntityPersister.Insert(Object id, Object[] fields, Boolean[] notNull, Int32 j, SqlCommandInfo sql, Object obj, ISessionImplementor session)
at NHibernate.Persister.Entity.AbstractEntityPersister.Insert(Object id, Object[] fields, Object obj, ISessionImplementor session)
at NHibernate.Action.EntityInsertAction.Execute()
at NHibernate.Engine.ActionQueue.Execute(IExecutable executable)
at NHibernate.Engine.ActionQueue.ExecuteActions(IList list)
at NHibernate.Engine.ActionQueue.ExecuteActions()
at NHibernate.Event.Default.AbstractFlushingEventListener.PerformExecutions(IEventSource session)
at NHibernate.Event.Default.DefaultFlushEventListener.OnFlush(FlushEvent event)
at NHibernate.Impl.SessionImpl.Flush()
at NHibernate.Transaction.AdoTransaction.Commit()
只是为了完整。例外:
索引超出范围…
与NHibernate的WRITE操作主要意味着:存在双列映射。
通常为<property>
和<many-to-one>
的组合。还要检查:
NHibernate映射索引超出范围