2009-04-13 22 views
7

Tôi có một ứng dụng MVC sử dụng NHibernate.NHibernate Lỗi trên phiên.Save

Tôi đã tạo một mô hình và cố gắng chèn dữ liệu vào db lần đầu tiên với NHibernate, vì vậy, vui lòng thực hiện dễ dàng.

Tôi gặp lỗi này trên phiên. Lưu (đối tượng);

IndexOutOfRangeException là unhandled bởi mã người dùng

chỉ số không hợp lệ 8 cho SqlParameterCollection này với Count = 8.

Khi tôi xem dữ liệu trong đối tượng sử dụng cửa sổ xem, tất cả dường như cũng như các bộ sưu tập được inittialized.

Sử dụng SQL 2005.

Mọi ý tưởng tại sao điều này có thể xảy ra?

Malcolm

Trả lời

0

Một trong các liên kết này có hữu ích không?

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

Nếu không, bạn sẽ phải gửi bản đồ của bạn để có được những lời khuyên bổ sung.

Tôi đề nghị khắc phục sự cố này bằng cách đầu tiên cô lập chèn vào thử nghiệm đơn vị.

12

Tôi đã có cùng một vấn đề bằng cách sử dụng NHibernate bản thân mình, vấn đề trong trường hợp của tôi là trong bản đồ. Trên các liên kết của tôi, tôi đã ánh xạ một thuộc tính chứa thực thể được liên kết và cũng chỉ là thuộc tính có ID liên kết.

Giải pháp trong trường hợp của tôi là thêm update="false" insert="false" vào bản đồ của tôi về thuộc tính chứa ID. Như thế này:

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

Tôi đã gặp phải lỗi đó một vài lần, vì nó xảy ra rất hiếm khi, tôi đã bắt gặp ngoại lệ và viết lời nhắc trong nhật ký cho chính mình –

+0

wow! stackoverflow + fredrik ftw! cảm ơn vì đã tiết kiệm cho tôi rất nhiều thời gian về vấn đề này. –

2

Guys nếu bạn đang nhận được này Kiểm tra các tập tin bản đồ, tôi đã nhận lỗi cùng và tôi đã có hai propertise ánh xạ tới cùng một cột, tôi biết câu trả lời là khá trễ này là dành cho những người sử dụng người đi tìm kiếm câu trả lời cho cùng một câu hỏi.

Lưu ý: đây có thể không phải là lý do duy nhất, dù sao tôi cũng do điều này.