3

What can cause the following error in c# when using NHibernate and Firebird database?

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()
Radim Köhler
  • 122,561
  • 47
  • 239
  • 335
Robert
  • 2,357
  • 4
  • 25
  • 46
  • 1
    Did that "duplicate mark" helped you Robert? Honestly I doubt it did, because I would expect it'll be about a different issue... Maybe this http://stackoverflow.com/a/24278610/1679310 could give some hint – Radim Köhler Aug 17 '15 at 07:23
  • No. Since this is an issue inside a library (nhibernate and firebird) I use (If it was my code I could have simply used an debugger and solved it in no time..). I will check you link, it gives me a hint on what might cause it so I'll know where to start searching. – Robert Aug 17 '15 at 11:31
  • The problem was in fact two properties mapped to the same column. Inheritance made it harder to find. – Robert Aug 17 '15 at 12:05
  • I expected that.. great you made it. Good luck with NHibernate – Radim Köhler Aug 17 '15 at 12:05

1 Answers1

4

Just for completeness. The exception:

Index was out of range...

with NHibernate WRITE operation mostly means: there is doubled column mapping.

Usually combination of the <property> and <many-to-one>. Also check:

NHibernate mapping index out of range

Community
  • 1
  • 1
Radim Köhler
  • 122,561
  • 47
  • 239
  • 335