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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top