2012-03-29 17 views
-1

Ich habe Tabellenadresse und viele Tabellen für Konten. Wie Fluent-Mapping-Eins-zu-Eins-Beziehung für diese Situation schreiben?Fließende NHibernate Eins-zu-Eins-Beziehung

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

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

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

Antwort

1

Dies ist für die automatische Zuordnung. Id

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

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

+----------+ 
| AccountB | 
+---------+ 
| Id  | PK 
+----------+ 
:

.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()) 

All diese Tabellen sind die gleichen Schlüssel haben

Verwandte Themen