Impossibile ottenere NHibernate per generare la query corretta. Continua a utilizzare le chiavi primarie delle due tabelle a cui sto partecipando per la relazione uno a uno e non riesco a capire come specificare la chiave esterna in una delle tabelle.Mappatura uno-a-uno NHibernate, chiavi non primarie
tableA tableB
{ aID, { bID,
bID, z,
c, y,
d } x }
in modo che la tabellaA debba unirsi alla tabellaB utilizzando tableA.bID = tableB.bID. Come posso specificarlo nella mappatura per tableA? Sto usando la classe tableA per recuperare una riga dalla tabellaA e una riga dalla tabellaB, in quanto si tratta di una relazione uno a uno reale.
NHibernate genera lo sql per unire le tabelle utilizzando tableA.aID = tableB.bID, che è errato.
Questo non funziona:
<class name="tableA" table="tableA">
<id name="aID" column="aID" />
<property name="bID" column="bID" />
<property name="c" column="c" />
<property name="d" column="d" />
<one-to-one name="otherThing" class="tableB" foreign-key="bID" />
</class>
<class name="tableB" table="tableB">
<id name="bID" column="bID" />
<property name="z" column="z" />
<property name="y" column="y" />
<property name="x" column="x" />
</class>
Grazie. Ha funzionato. Confondendo che devo usare un elemento many-to-one quando è veramente un mapping one-to-one. Ho anche impostato il tipo di recupero su "join" in modo da ridurre il numero di query. – MonkeyWrench
Ma sì, se puoi mostrare un esempio bidirezionale, sarebbe educativo. – MonkeyWrench
Ecco qua ... –