2012-03-29 4 views
-1

나는 테이블 주소와 계정에 대한 많은 테이블이있다. 쓰는 법이 상황에 대해 일대일로 유창한 매핑을 작성 하시겠습니까?유창함 NHibernate에 일대일 관계

+----------+ 
| Address | 
+----------+ 
| Id  | PK 
+----------+ 

+----------+ 
| AccountA | 
+---------+ 
| Id  | PK 
| AddressId| FK 
+----------+ 

+----------+ 
| AccountB | 
+---------+ 
| Id  | PK 
| AddressId| FK 
+----------+ 

답변

1

자동 매핑 용입니다.

.Override<Address>(mapping => mapping.HasOne(address => caddress.AddressA).Cascade.All().LazyLoad()) 
.Override<Address>(mapping => mapping.HasOne(address => caddress.AddressB).Cascade.All().LazyLoad()) 
.Override<AddressA>(mapping => mapping.Id(x => x.Id).GeneratedBy.Foreign("Address")) 
.Override<AddressB>(mapping => mapping.Id(x => x.Id).GeneratedBy.Foreign("Address")) 
.Override<AddressA>(
    mapping => mapping.HasOne(
    Reveal.Member<AddressA, Address>("Address")).Constrained().ForeignKey().LazyLoad()) 
.Override<AddressB>(
    mapping => mapping.HasOne(
    Reveal.Member<AddressB, Address>("Address")).Constrained().ForeignKey().LazyLoad()) 

이 모든 테이블

는 동일한 키를 가지고 있습니다 :
+----------+ 
| Address | 
+----------+ 
| Id  | PK 
+----------+ 

+----------+ 
| AccountA | 
+---------+ 
| Id  | PK 
+----------+ 

+----------+ 
| AccountB | 
+---------+ 
| Id  | PK 
+----------+ 
아이디