2009-04-13 10 views
7

Tengo una aplicación MVC usando NHibernate.NHibernate Error en la sesión. Guardar

Creé un modelo y traté de insertar datos en la base de datos por primera vez con NHibernate, así que por favor vaya fácil.

Recibo este error en la sesión. Guardar (objeto);

IndexOutOfRangeException era no controlada por el código de usuario

índice no válido 8 para este SqlParameterCollection con Count = 8.

Cuando miro los datos en el objeto utilizando la ventana de observación, todo parece bien y también las colecciones se inician.

Uso de SQL 2005.

Cualquier idea por qué esto puede estar ocurriendo por favor?

Malcolm

Respuesta

12

Tuve el mismo problema al usar NHibernate, el problema en mi caso estaba en el mapeo. En mis asociaciones, he mapeado una propiedad que contiene la entidad asociada, y también una propiedad con la ID de asociación solamente.

La solución en mi caso fue agregar update="false" insert="false" a mi mapeo de la propiedad que contiene la identificación. De esta manera:

<property name="AssociationId" column="AssociationColumnName" update="false" insert="false" /> 
<many-to-one name="Association" column="AssociationColumnName" property-ref="Id" not-null="false" /> 
+0

Me encontré con ese error varias veces, ya que ocurre muy raramente, he detectado específicamente la excepción y escribí un recordatorio en el registro para mí –

+0

¡guau! stackoverflow + fredrik ftw! gracias por ahorrarme un montón de tiempo en este tema. –

2

chicos si está recibiendo esta Compruebe el archivo de asignación, me dieron el mismo error y tenía dos propertise asignada a la misma columna, sé que la respuesta es bastante tarde esto es para los usuarios que vienen buscando respuestas para la misma pregunta.

Nota: esta podría no ser la única razón, de todos modos la mía se debió a esto.

Cuestiones relacionadas