the log: NHibernate.Transaction.AdoTransaction - Begin (Unspecified) NHibernate.Connection.DriverConnectionProvider - Obtaining IDbConnection from Driver NHibernate.Event.Default.DefaultSaveOrUpdateEventListener - saving transient instance NHibernate.Event.Default.AbstractSaveEventListener - saving [Veranda.Online.Model.Order#<null>] NHibernate.Event.Default.AbstractSaveEventListener - executing insertions NHibernate.Event.Default.WrapVisitor - Wrapped collection in role: Veranda.Online.Model.Order.Items NHibernate.Event.Default.AbstractSaveEventListener - executing identity-insert immediately NHibernate.Persister.Entity.AbstractEntityPersister - Inserting entity: Veranda.Online.Model.Order (native id) NHibernate.AdoNet.AbstractBatcher - Opened new IDbCommand, open IDbCommands: 1 NHibernate.AdoNet.AbstractBatcher - Building an IDbCommand object for the SqlString: INSERT INTO Orders (ShippedDate, Price, PurchasedDate, Buyer) VALUES (?, ?, ?, ?); select SCOPE_IDENTITY() NHibernate.Persister.Entity.AbstractEntityPersister - Dehydrating entity: [Veranda.Online.Model.Order#<null>] NHibernate.SQL - INSERT INTO Orders (ShippedDate, Price, PurchasedDate, Buyer) VALUES (@p0, @p1, @p2, @p3); select SCOPE_IDENTITY(); @p0 = '', @p1 = '0', @p2 = '26-4-2009 21:54:06', @p3 = '' NHibernate.Transaction.AdoTransaction - Enlist Command NHibernate.AdoNet.AbstractBatcher - Opened IDataReader, open IDataReaders: 1 NHibernate.Id.IdentifierGeneratorFactory - Natively generated identity: 1 NHibernate.Driver.NHybridDataReader - running NHybridDataReader.Dispose() NHibernate.AdoNet.AbstractBatcher - Closed IDataReader, open IDataReaders :0 NHibernate.AdoNet.AbstractBatcher - Closed IDbCommand, open IDbCommands: 0 NHibernate.Event.Default.DefaultSaveOrUpdateEventListener - saving transient instance NHibernate.Event.Default.AbstractSaveEventListener - saving [Veranda.Online.Model.OrderItem#<null>] NHibernate.Event.Default.AbstractSaveEventListener - executing insertions NHibernate.Engine.IdentifierValue - unsaved-value: 0 NHibernate.Event.Default.AbstractSaveEventListener - executing identity-insert immediately NHibernate.Persister.Entity.AbstractEntityPersister - Inserting entity: Veranda.Online.Model.OrderItem (native id) NHibernate.AdoNet.AbstractBatcher - Opened new IDbCommand, open IDbCommands: 1 NHibernate.AdoNet.AbstractBatcher - Building an IDbCommand object for the SqlString: INSERT INTO OrderItems (Price, Quantity, ProductType, ProductID, [Order]) VALUES (?, ?, ?, ?, ?); select SCOPE_IDENTITY() NHibernate.Persister.Entity.AbstractEntityPersister - Dehydrating entity: [Veranda.Online.Model.OrderItem#<null>] NHibernate.Engine.IdentifierValue - unsaved-value: 0 NHibernate.AdoNet.AbstractBatcher - Closed IDbCommand, open IDbCommands: 0 NHibernate.Transaction.AdoTransaction - Rollback NHibernate.Transaction.AdoTransaction - IDbTransaction RolledBack NHibernate.Transaction.AdoTransaction - IDbTransaction disposed. NHibernate.Impl.SessionImpl - transaction completion NHibernate.AdoNet.ConnectionManager - aggressively releasing database connection NHibernate.Connection.ConnectionProvider - Closing connection
the stack trace: IndexOutOfRangeException Message: Invalid index 5 for this SqlParameterCollection with Count=5. at System.Data.SqlClient.SqlParameterCollection.RangeCheck(Int32 index) at System.Data.SqlClient.SqlParameterCollection.GetParameter(Int32 index) 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, Boolean[] settable, ISessionImplementor session) at NHibernate.Type.ManyToOneType.NullSafeSet(IDbCommand st, Object value, Int32 index, Boolean[] settable, 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.Dehydrate (Object id, Object[] fields, Boolean[] includeProperty, Boolean[][] includeColumns, Int32 j, IDbCommand st, ISessionImplementor session) at NHibernate.Persister.Entity.AbstractEntityPersister.GeneratedIdentifierBinder.BindValues (IDbCommand ps) at NHibernate.Id.Insert.AbstractReturningDelegate.PerformInsert (SqlCommandInfo insertSQL, ISessionImplementor session, IBinder binder) at NHibernate.Persister.Entity.AbstractEntityPersister.Insert(Object[] fields, Boolean[] notNull, SqlCommandInfo sql, Object obj, ISessionImplementor session) at NHibernate.Persister.Entity.AbstractEntityPersister.Insert(Object[] fields, Object obj, ISessionImplementor session) at NHibernate.Action.EntityIdentityInsertAction.Execute() at NHibernate.Engine.ActionQueue.Execute(IExecutable executable) at NHibernate.Event.Default.AbstractSaveEventListener.PerformSaveOrReplicate (Object entity, EntityKey key, IEntityPersister persister, Boolean useIdentityColumn, Object anything, IEventSource source, Boolean requiresImmediateIdAccess) at NHibernate.Event.Default.AbstractSaveEventListener.PerformSave (Object entity, Object id, IEntityPersister persister, Boolean useIdentityColumn, Object anything, IEventSource source, Boolean requiresImmediateIdAccess) at NHibernate.Event.Default.AbstractSaveEventListener.SaveWithGeneratedId (Object entity, String entityName, Object anything, IEventSource source, Boolean requiresImmediateIdAccess) at NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.SaveWithGeneratedOrRequestedId (SaveOrUpdateEvent event) at NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.EntityIsTransient (SaveOrUpdateEvent event) at NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.PerformSaveOrUpdate (SaveOrUpdateEvent event) at NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.OnSaveOrUpdate (SaveOrUpdateEvent event) at NHibernate.Impl.SessionImpl.FireSaveOrUpdate(SaveOrUpdateEvent event) at NHibernate.Impl.SessionImpl.SaveOrUpdate(String entityName, Object obj) at NHibernate.Engine.CascadingAction.SaveUpdateCascadingAction.Cascade (IEventSource session, Object child, String entityName, Object anything, Boolean isCascadeDeleteEnabled) at NHibernate.Engine.Cascade.CascadeToOne(Object child, IType type, CascadeStyle style, Object anything, Boolean isCascadeDeleteEnabled) at NHibernate.Engine.Cascade.CascadeAssociation(Object child, IType type, CascadeStyle style, Object anything, Boolean isCascadeDeleteEnabled) at NHibernate.Engine.Cascade.CascadeProperty(Object child, IType type, CascadeStyle style, Object anything, Boolean isCascadeDeleteEnabled) at NHibernate.Engine.Cascade.CascadeCollectionElements(Object child, CollectionType collectionType, CascadeStyle style, IType elemType, Object anything, Boolean isCascadeDeleteEnabled) at NHibernate.Engine.Cascade.CascadeCollection(Object child, CascadeStyle style, Object anything, CollectionType type) at NHibernate.Engine.Cascade.CascadeAssociation(Object child, IType type, CascadeStyle style, Object anything, Boolean isCascadeDeleteEnabled) at NHibernate.Engine.Cascade.CascadeProperty(Object child, IType type, CascadeStyle style, Object anything, Boolean isCascadeDeleteEnabled) at NHibernate.Engine.Cascade.CascadeOn(IEntityPersister persister, Object parent, Object anything) at NHibernate.Event.Default.AbstractSaveEventListener.CascadeAfterSave (IEventSource source, IEntityPersister persister, Object entity, Object anything) at NHibernate.Event.Default.AbstractSaveEventListener.PerformSaveOrReplicate (Object entity, EntityKey key, IEntityPersister persister, Boolean useIdentityColumn, Object anything, IEventSource source, Boolean requiresImmediateIdAccess) at NHibernate.Event.Default.AbstractSaveEventListener.PerformSave (Object entity, Object id, IEntityPersister persister, Boolean useIdentityColumn, Object anything, IEventSource source, Boolean requiresImmediateIdAccess) at NHibernate.Event.Default.AbstractSaveEventListener.SaveWithGeneratedId (Object entity, String entityName, Object anything, IEventSource source, Boolean requiresImmediateIdAccess) at NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.SaveWithGeneratedOrRequestedId (SaveOrUpdateEvent event) at NHibernate.Event.Default.DefaultSaveEventListener.SaveWithGeneratedOrRequestedId (SaveOrUpdateEvent event) at NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.EntityIsTransient (SaveOrUpdateEvent event) at NHibernate.Event.Default.DefaultSaveEventListener.PerformSaveOrUpdate (SaveOrUpdateEvent event) at NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.OnSaveOrUpdate (SaveOrUpdateEvent event) at NHibernate.Impl.SessionImpl.FireSave(SaveOrUpdateEvent event) at NHibernate.Impl.SessionImpl.Save(Object obj) at Castle.ActiveRecord.ActiveRecordBase.InternalCreate(Object instance, Boolean flush) It seems that in the params collection there is 1 param more than it should. Dan On Apr 27, 6:22 am, Fabio Maulo <[email protected]> wrote: > The exception & call stack ? > > 2009/4/24 bdaniel7 <[email protected]> > > > > > > > By Ayende's suggestion, i post this too (also posted in Castle Project > > group) > > > I have this situation: > > class Order > > { > > [HasMany( Inverse=true, > > Cascade=ManyRelationCascadeEnum.SaveUpdate)] > > public virtual IList< OrderItem > Items > > { > > get { return items; } > > set { items = value; } > > } > > > } > > > class OrderItem > > { > > [BelongsTo( "[Order]" )] > > public virtual Order Order > > { > > get { return order; } > > set { order = value; } > > } > > > [Any( typeof ( int ), MetaType = typeof > > ( ProductType ), TypeColumn > > = "ProductType", IdColumn = "ProductID" )] > > [Any.MetaValueAttribute( "0", typeof ( Color ) )] > > [Any.MetaValueAttribute( "1", typeof > > ( VerandaSize ) )] > > [Any.MetaValueAttribute( "2", typeof ( RoofPlate ) )] > > [Any.MetaValueAttribute( "3", typeof ( Pillar ) )] > > [Any.MetaValueAttribute( "4", typeof ( SideFrame ) )] > > [Any.MetaValueAttribute( "5", typeof ( WindScreen ) )] > > public virtual IPricedModel Product > > { > > get { return product; } > > set { product = value; } > > } > > > } > > > Because there are multiple products that share some properties, I > > picked this approach. > > Now, when I try to save an Order, with several OrderItems, I receive > > this errror: > > "Invalid index 5 for this SqlParameterCollection with Count=5" > > The log makes me think that this occurs when trying to save the > > OrderItem. > > In debugger, all OrderItems that I'm saving have all the data > > required. > > > Can someone tell me to why is this happening? > > Thanks, > > Dan > > -- > Fabio Maulo --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
