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
-~----------~----~----~----~------~----~------~--~---

Reply via email to