Hi,
I have a Entity called Person that should have a Parent property. The
Parent property is a FK reference to the parent Person and can be
null.
Now, I decided that performance wise it's easier to simply get all
Persons in a flat list, and create the tree in memory.
To accomplish this (my ParentPerson property is lazy loaded) I tried
to introduce a new Field to the Domain Object called ParentPersonId
that maps so the same column as the many-to-one relationship.
After I ran my Unit Tests everything failed with the following stack
trace:
System.IndexOutOfRangeException: Ungültiger Index 33 für
SqlParameterCollection mit Count=33.
bei System.Data.SqlClient.SqlParameterCollection.RangeCheck(Int32
index)
bei System.Data.SqlClient.SqlParameterCollection.GetParameter(Int32
index)
bei
System.Data.Common.DbParameterCollection.System.Collections.IList.get_Item(Int32
index)
bei NHibernate.Type.Int64Type.Set(IDbCommand rs, Object value, Int32
index)
bei NHibernate.Type.NullableType.NullSafeSet(IDbCommand cmd, Object
value, Int32 index)
bei NHibernate.Type.NullableType.NullSafeSet(IDbCommand st, Object
value, Int32 index, ISessionImplementor session)
bei
NHibernate.Persister.Entity.AbstractEntityPersister.Dehydrate(Object
id, Object[] fields, Object rowId, Boolean[] includeProperty, Boolean[]
[] includeColumns, Int32 table, IDbCommand statement,
ISessionImplementor session, Int32 index)
bei NHibernate.Persister.Entity.AbstractEntityPersister.Insert(Object
id, Object[] fields, Boolean[] notNull, Int32 j, SqlCommandInfo sql,
Object obj, ISessionImplementor session)
bei NHibernate.Persister.Entity.AbstractEntityPersister.Insert(Object
id, Object[] fields, Object obj, ISessionImplementor session)
bei NHibernate.Action.EntityInsertAction.Execute()
bei NHibernate.Engine.ActionQueue.Execute(IExecutable executable)
bei NHibernate.Engine.ActionQueue.ExecuteActions(IList list)
bei NHibernate.Engine.ActionQueue.ExecuteActions()
bei
NHibernate.Event.Default.AbstractFlushingEventListener.PerformExecutions(IEventSource
session)
bei
NHibernate.Event.Default.DefaultFlushEventListener.OnFlush(FlushEvent
event)
bei NHibernate.Impl.SessionImpl.Flush()
bei NHibernate.Transaction.AdoTransaction.Commit()
bei
mlmManager.Repositories.NHibernate.Tests.PersonRepository_Fixture.CreateInitialData()
in PersonRepository_Fixture.cs: line 122.
bei
mlmManager.Repositories.NHibernate.Tests.PersonRepository_Fixture.SetupContext()
in PersonRepository_Fixture.cs: line 22.
Sorry it's in german, "bei" means at and the top line says "Invalid
Index 33 for SqlParameterCollection with Count=33"
The mapping file looks like this:
<class name="Person">
<id name="Id" type="Int64">
<generator class="hilo" />
</id>
<property name="ParentPersonId" column="ParentId" type="Int64" />
<many-to-one name="Parent" class="Person" column="ParentId" />
<set name="Children" cascade="all-delete-orphan">
<key column="ParentId" foreign-key="fk_Person_ParentPerson" />
<one-to-many class="Person"/>
</set>
</class>
(I omitted the irrelevant value fields).
Maybe you have an Idea why I am getting this error? I can't really
figure it out..
greetings
Daniel Hoelbling
http://www.tigraine.at
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"nhusers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/nhusers?hl=en
-~----------~----~----~----~------~----~------~--~---