2009-04-13 2 views
7

У меня есть приложение MVC с использованием NHibernate.NHibernate Ошибка в session.Save

Я создал модель и попытался вставить данные в db в первый раз с NHibernate, поэтому, пожалуйста, пройдите.

Я получаю эту ошибку на сессии. Сохранение (объект);

IndexOutOfRangeException был необработанным кодом пользователя

Недопустимого индекса 8 для этого SqlParameterCollection с графом = 8.

Когда я смотрю на данные в объекте, используя окно просмотра, все кажется ok, а также коллекции inittialized.

Использование SQL 2005.

Любые идеи, почему это может происходить, пожалуйста?

Malcolm

ответ

0

Помогает ли одна из этих ссылок?

http://groups.google.com/group/nhusers/browse_thread/thread/34f124a7052c37ff

http://www.methodicmadness.com/2009/01/nhibernate-what-is-heck-clazz.html

http://groups.google.com/group/fluent-nhibernate/browse_thread/thread/116c822c44aae797

Если нет, то вы должны будете разместить свое отображение, чтобы получить дополнительную консультацию.

Я предлагаю устранить эту проблему, предварительно вставив вставку в единичный тест.

12

У меня была такая же проблема с использованием NHibernate, проблема в моем случае была в сопоставлении. В моих ассоциациях я сопоставил свойство, содержащее связанный объект, а также свойство с идентификатором ассоциации.

Решение в моем случае состояло в том, чтобы добавить update="false" insert="false" к моему отображению свойства, содержащего идентификатор. Как это:

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

Я столкнулся с этой ошибкой несколько раз, так как это происходит очень редко, я специально поймал исключение и написал напоминание в журнале для себя –

+0

wow! stackoverflow + fredrik ftw! спасибо, что спасли мне много времени по этому вопросу. –

2

Ребята, если вы получаете это проверить файл отображения, я получил ту же ошибку, и я имел два propertise отображается в той же колонке, я знаю, что ответ довольно поздно это для пользователей которые приходят искать ответы на тот же вопрос.

Примечание: это может быть не единственная причина, так или иначе, из-за этого.

Смежные вопросы