NHibernare i mapping molti-a-uno aggiornando la tabella invariata
-
05-07-2019 - |
Domanda
Ho una situazione in cui ho due entità che condividono una chiave primaria (Transaction e TransactionDetail). Li ho mappati usando la relazione molti-a-uno da Transaction a TransactionDetail e da TransactionDetail a Transaction. I dettagli della transazione contengono un record per ogni transazione.
Tuttavia, quando creo un nuovo oggetto dettaglio transazione e lo aggiungo alla transazione, NHibernate tenta di aggiornare la tabella Transaction con una query come 'update transazioni set id =? dove id =? ' con lo stesso valore per ogni parametro.
Poiché il mapping è nella colonna chiave primaria, non voglio che la transazione venga aggiornata. In effetti, poiché la chiave primaria è una colonna di identità, viene visualizzato un errore quando si tenta di aggiornare il valore. Come posso impedire a NHibernate di aggiornare la tabella Transaction quando viene creato un nuovo record TransactionDetail?
Soluzione
Potresti voler esaminare i tipi di mappatura one-to-one
o join-table
. molti-a-uno
significa qualcosa di specifico e sembra che il tuo caso possa adattarsi meglio al profilo di uno degli altri due tipi di mappature.