Secondo la documentazione NHibernate, istruzioni SQL vengono emesse nell'ordine seguente quando una sessione viene lavata:NHibernate ordine delle istruzioni SQL per lavare sessione
- tutti gli inserimenti di entità, nello stesso ordine gli oggetti corrispondenti erano stati salvati usando ISession.Save()
- tutte entità aggiorna
- tutte le cancellazioni di raccolta
- tutti elementi collezione cancellazioni, aggiornamenti e inserimenti
- tutta la linea insertio ns
- tutte le cancellazioni di entità, nello stesso ordine gli oggetti corrispondenti erano stati cancellati usando ISession.Delete()
Perché è forzato in questo ordine e c'è un modo per cambiare in modo che le istruzioni vengono eseguite nello stesso ordine in cui li do?
Sono incuriosito da questo. Perché vuoi un ordine diverso, cosa stai cercando di ottenere? – Rippo
Ok senza entrare troppo nei dettagli, ho una tabella molti a molti (con un pk composito) che sto cercando di cancellare prima e poi reinserire quando salvo il genitore; Ho impostato inverse = true sulla raccolta genitore, quindi devo gestire il salvataggio da solo, ma poiché gli inserimenti avvengono prima delle eliminazioni ottengo una violazione del vincolo se ho bisogno di salvare nuovamente una vecchia parte da molti a molti. Ho giocato solo con NH per un giorno o giù di lì, cercando ancora di elaborare i dettagli. – LMC