nhibernate를 통해 2 개의 클래스를 어떻게 연관시킬 수 있습니까?
-
03-07-2019 - |
문제
"사용자"클래스가 하나 있고 "유형의"프로필 속성 "이 있다고 가정 해 봅시다. 스키마를 생성하고 데이터베이스에서 두 테이블을 만들기 위해 매핑을 구성하려면 어떻게해야합니까?
해결책
<many-to-one/>
다른 팁
제쳐두고, 당신이 최대 절전 모드 매핑을 스크립팅하는 훌륭한 팬이 아니라면 (나는 그렇지 않음) 다른 몇 가지 옵션이 있습니다.
캐슬 activerecord 하나의 대안입니다 - 그것은 nhibernate 위에있는 레이어로, 그 중에서도 클래스와 속성에 속성을 사용하여 관계를 선언 할 수 있습니다.
그리고 유창한 nhibernate 또 다른 것입니다 - 수업과 관계를 프로그래밍 방식으로 설정할 수 있습니다.
둘 다 매핑 XML을 손으로 작성하는 것보다 큰 개선입니다!
매핑에 대해 묻는 경우 아래 그림과 같이 조인을 사용할 수 있습니다. 참고 : 앱에 맞게 몇 가지 추가 속성을 추가해야합니다.
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="MyNamespace" assembly="MyAssembly" default-lazy="true">
<class name="User" table="User">
<id name="Id" column="user_id" unsaved-value="0">
<generator class="native" />
</id>
<property name="Profile" column="profile" />
</class>
</hibernate-mapping>
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="MyNamespace" assembly="MyAssembly" default-lazy="true">
<class name="Profile" table="Profile">
<id name="Id" column="profile_id" unsaved-value="0">
<generator class="native" />
</id>
<property name="Profile" column="profile" />
</class>
</hibernate-mapping>
제휴하지 않습니다 StackOverflow