2014-05-15 35 views
1

有兩個表DocumentType和EmployeeDocumentType。在EmployeeDocumentType w.r.t DocumentType中有多行。在nhibernate中保存具有多對一映射的數據時出現錯誤

我需要在EmployeeDocumentType中使用多對一的映射。我使用的語法如下:

<many-to-one name="DocumentType" column="DocumentTypeId" class="DocumentType" /> 

數據被正確進來EmployeeDocumentType對象,但是當我保存的細節到EmployeeDocumentType,它給誤差,

無效的指數14本SqlParameterCollection以計數= 14。

可能是什麼問題。

回答

1

這個問題應該是(幾乎肯定)doubled映射相關。

檢查你的映射文件,其中column="DocumentTypeId"可以用來
(或通過一些默認的約定name="DocumentTypeId"

<!-- example of doubled mapping could be Int property representing the Int column --> 
<property name="DocumentTypeId" column="DocumentTypeId" /> 
<many-to-one name="DocumentType" column="DocumentTypeId" class="DocumentType" /> 

該解決方案是非常容易,其中一個必須標記爲另一個地方只讀

<property name="DocumentTypeId" column="DocumentTypeId" 
                 insert="false" update="false"/> 
<many-to-one name="DocumentType" column="DocumentTypeId" class="DocumentType" />