2014-05-15 3 views
1

DocumentType과 EmployeeDocumentType의 두 테이블이 있습니다. EmployeeDocumentType w.r.t DocumentType에는 여러 행이 있습니다.nhibernate에서 다 대일 매핑을 사용하여 데이터를 저장하는 중에 오류가 발생합니다.

EmployeeDocumentType에서 다 대일 매핑을 사용해야합니다. 나는 다음과 같은 구문을 사용하고 있습니다 :

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

데이터 EmployeeDocumentType 객체에 올바르게오고있다,하지만 내가 EmployeeDocumentType에 세부 정보를 저장하는 경우, 그것은 백작이 SqlParameterCollection를 들어, 같은

잘못된 인덱스 (14) 오류를주고있다 = 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" />