2011-11-17 1102 views
5

El cliente de cuervo (IDocumentSession) no envía nada al servidor hasta que se llame al SaveChanges. Entonces, podría considerarse como una implementación de UnitOfWork, ¿verdad?IDocumentSession.SaveChanges() vs Transactions

¿Estoy en lo cierto al pensar que la única diferencia entre SaveChanges y Transaction.Commit es que la última restituye todos los cambios si algo falla durante la confirmación?

Respuesta

7

Si está realizando una sola operación, no es necesario utilizar una transacción explícita ya que el SaveChanges da como resultado una transacción implícita.

Si utiliza System.Transactions, puede realizar varias operaciones, es decir, múltiples SaveChanges utilizando la misma transacción. Raven administrará las transacciones en http utilizando un encabezado de solicitud.

Leer más en la documentación: http://ravendb.net/documentation/docs-api-transactions

+0

Kul med andra svenska RavenDb nissar;) (el comentario no dice mucho, solo ignóralo si no eres sueco) – jgauffin

6

jgauffin, SaveChanges() operar en una transacción, por lo que si va a modificar varios documentos, todos ellos se salvarían, o ninguno lo haría. También admitimos System.Transactions, pero por lo general no es necesario.

Cuestiones relacionadas