Non è chiaro se sia necessario utilizzare TransactionScope o DbContext.SaveChanges() è sufficiente per il commit della mia transazione costituita da più operazioni CRUD. Sto usando SQL Server nel back-end.EF5 DbContext.SaveChanges gestisce il commit e il rollback delle transazioni?
risposta
Se si chiama SaveChanges()
più volte e si desidera ripristinare tutte queste modifiche, si si desidera utilizzare uno TransactionScope
. Se si chiama SaveChanges()
una volta nel contesto, tutte le modifiche vengono inviate al database contemporaneamente in una transazione dietro le quinte.
Solo una conferma richiesta per il seguente scenario: In caso chiami SaveChanges() una volta per più CRUD operazioni, devo disporre l'oggetto DbContext per il rollback della transazione. – Jas
Non penso che lo smaltimento di 'DbContext' ripristinerà la transazione. Se questo è il caso, probabilmente si vuole cercare nelle opzioni di overload per 'SaveChanges()' che è possibile disabilitare il commit automatico della transazione e si dovrebbe incaricarsi di chiamare 'AcceptAllChanges()'. http://msdn.microsoft.com/en-us/library/bb739065.aspx –
Ma il collegamento msdn che hai fornito indica che l'API di ObjectContext.SaveChanges() è ora obsoleta. Inoltre, ObjectContext.SaveChanges() eseguirà il rollback dell'intera transazione in caso di un'eccezione generata da SQL Server. Inoltre, non esiste un modo più semplice per eseguire il rollback delle mie operazioni CRUD utilizzando DbContext? – Jas
- 1. Transazioni Oracle di commit e rollback
- 2. EJB: Evita il rollback delle transazioni
- 3. JUnit verifica sempre il rollback delle transazioni
- 4. Transazione di rollback tramite il log delle transazioni
- 5. Come eseguire il rollback SQL dai registri delle transazioni
- 6. MySql stored procedure, transazioni e rollback
- 7. Scopo delle transazioni nidificate
- 8. mysql commit e transazioni
- 9. salva il commit rollback in mysql
- 10. Spring Boot @WebIntegrationTest e TestRestTemplate - È possibile eseguire il rollback delle transazioni di prova?
- 11. aggiornamento dell'oggetto cache infinispan nel numero di rollback delle transazioni
- 12. Transazioni di rollback con LOCK TABLES
- 13. PHP e MySQL: il codice semplice da implementare transazione - Commit e rollback
- 14. Quando eseguire il commit delle transazioni NHibernate nell'applicazione ASP.NET MVC 2?
- 15. node.js + Postgres gestione delle transazioni di database
- 16. Transazione di rollback dopo il commit nelle guide
- 17. Gestione transazioni rollback MySQL in Node.js
- 18. TransactionScope e Transazioni
- 19. Come eseguire il commit e il rollback della transazione nel server sql?
- 20. Come utilizzare le transazioni (iniziare la transazione, effettuare il commit della transazione)?
- 21. Impossibile eseguire il rollback della transazione JPA; javax.persistence.PersistenceException: errore imprevisto durante il rollback delle "eccezioni?
- 22. Come eseguire il commit delle transazioni Fragment in FragmentPagerAdapter nel metodo di callback onLoadFinish?
- 23. Transazioni frammento, barra delle azioni e backstack
- 24. Arjuna JTA transazioni annullate da una rollback inaspettatamente
- 25. Il log delle transazioni per il database 'database' è pieno.
- 26. registra dinamicamente il listener delle transazioni con la molla?
- 27. Golang - pgbouncer e l'uso delle transazioni
- 28. gestisce transazioni di lunga durata con perl dbi
- 29. database/sql Tx - rilevamento Commit o rollback
- 30. Sharding e transazioni con MySQL
Correlato: http://stackoverflow.com/questions/6028626/ef-code-first-dbcontext-and-transactions –