나는 다음과 같은 sitation 매핑 어려움에 봉착지도 : 나는 연결 ID를 가진 사람이NHibernate에이 속성에 열 및 가방
을, 나는 가방과 속성을 매핑 얻기 위해 이것을 사용합니다. 데이터베이스가 이미있는 경우 작동합니다. 그러나 단위 테스트의 경우 스키마에서 하나를 생성하면 "열 이름 중복"오류가 발생합니다.
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="DomainLayer.SearchDomain" assembly="Test">
<class name="SearchPerson" table="person" lazy="false" mutable="false">
<id name="Id" column="`id`" type="int">
<generator class="identity" />
</id>
<property name="Name" column="`NAAM`" type="string" />
<property name="FirstName" column="`VOORNAAM`" type="string" />
<property name="ConnectionId" column="`Koppelid`" type="int" />
<bag name="Languages" lazy="false" mutable="false" access="field.camelcase-underscore">
<key property-ref="ConnectionId" column="Koppelid" />
<one-to-many class="DomainLayer.Person.LanguageSkill, Test" />
</bag>
</class>
</hibernate-mapping>
문제 : 재산에서와 가방에서 키 속성 모두 "Koppelid"여기
맵핑입니다.편집 :
LanguageSkill 매핑 : 그것은 실제로 작동합니다
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="DomainLayer.Person" assembly="Test">
<class name="LanguageSkill" table="languageskill" lazy="false">
<id name="Id" type="Int32">
<generator class="identity" />
</id>
<property name="ConnectionId" column="`KoppelId`" type="Int64" />
<property name="Remark" column="`Opmerking`" type="string" />
<property name="Source" column="`CdOorsprong`" type="string" />
<property name="MotherTongue" column="`moedertaal`" type="boolean" />
<property name="ModifiedDate" column="`wyzdat`" type="DateTime" />
</class>
</hibernate-mapping>
키 열을 얻었다 문제가되지 마라. 거기에 오류가 의심되기 때문에 LanguageSkill의 매핑을 게시하십시오. – Firo
네 말이 맞아. LanguageSkill의 매핑에는 ConnectionId (열 이름 "koppelid") 속성이 포함되어 있습니다. OP에서 언어 스킬 매핑을 추가했습니다. –