문제

나는 nhibernate를 처음 접했고 웹에서 nhibernate 매핑에 대한 수많은 Infos를 찾고 있지만이 정보를 찾기에는 너무 어리석은 일입니다.

문제는 다음과 같은 모델이 있다는 것입니다.

Datamodel

이것이 내가보고 싶은 방법입니다. 두 개의 주소 속성이있는 1 명의 깨끗한 사람.

데이터베이스에서는 이것을 한 테이블로 유지하고 싶습니다. 그래서 Person Row에는 ShippingsTreetName과 StreetName 열이 있습니다. 하나는 ShippingAddress.streetName에 매핑되고 다른 하나는 주소를 주소로 매핑했습니다 .StreetName

나는 an을 찾았다 유창한 인터페이스에 관한 기사, XML 구성을 통해이를 수행하는 방법을 여전히 알지 못했습니다.

미리 감사드립니다!

업데이트 : 나는 이것에 대한 솔루션을 혼자서 찾았습니다. 이것은 노드를 통해 수행 될 수 있으며 다소 간단하게 작동합니다.

주소 및 ShippingAddress의 매핑을 달성하려면 다음을 다음에 추가해야했습니다.

<component name="Address" class="Address">
  <property name="Streetname"></property>
  <property name="Zip"></property>
  <property name="City"></property>
  <property name="Country"></property>
</component>

<component name="ShippingAddress" class="Address">
  <property name="Streetname" column="ShippingStreetname" />
  <property name="Zip" column="ShippingZip" />
  <property name="City" column="ShippingCity" />
  <property name="Country" column="ShippingCountry" />
</component>
도움이 되었습니까?

해결책

확인. 솔루션을 직접 찾았습니다. 키는 XML 구성의 구성이며 다소 잘 작동합니다.

수행 방법은 다음과 같습니다.

<component name="Address" class="Address">
  <property name="Streetname"></property>
  <property name="Zip"></property>
  <property name="City"></property>
  <property name="Country"></property>
</component>

<component name="ShippingAddress" class="Address">
  <property name="Streetname" column="ShippingStreetname" />
  <property name="Zip" column="ShippingZip" />
  <property name="City" column="ShippingCity" />
  <property name="Country" column="ShippingCountry" />
</component>

다른 팁

이를 두 가지 관계로 구성 할 수 있습니다. 예를 들어

<many-to-one name="ShippingAddress" class="Yournamespace.Address"/>
<many-to-one name="Address" class="Yournamespace.Address"/>

주소에 대한 ID가 필요하지 않습니다. 신분증을 유지하는 데 얼마나 비싸다고 생각하십시오. 당신은 동시성 문제가 있고, 독창성이 필요합니다. 이것이 ValueObjects의 목표입니다 (System.ValueObject valueObject의 DDD 정의 참조). 이 경우 주소는 valueObject이므로 ID가 필요하지 않습니다. 그리고 주소 모음이 필요하면 "" "처럼 매핑하십시오. http://www.nhforge.org/doc/nh/en/index.html#collections-ofvalues.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top