Ошибка NHibernate на сессии. Сохранить - PullRequest
7 голосов
/ 13 апреля 2009

У меня есть приложение MVC, использующее NHibernate.

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

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

Исключение IndexOutOfRangeException не было обработано кодом пользователя

Недопустимый индекс 8 для этой SqlParameterCollection с Count = 8.

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

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

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

Malcolm

Ответы [ 3 ]

12 голосов
/ 05 мая 2009

У меня была такая же проблема при использовании 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" />
2 голосов
/ 12 ноября 2010

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

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

0 голосов
/ 13 апреля 2009

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...