2012-06-11 32 views
12

¿Cuál es la diferencia técnica entre SubmitChanges en Linq-to-SQL y SaveChanges en Entity Framework?¿Cuál es la diferencia técnica entre SubmitChanges en Linq-to-SQL y SaveChanges en Entity Framework?

Sabemos que SubmitChanges es un concepto para la clase DataContext, mientras que SaveChanges es un método de ObjectContext.

¿Hay alguna otra diferencia?

Gracias

+2

Básicamente es lo mismo: solo para dos bibliotecas diferentes de código. Desde un punto de vista funcional: ambos persistirán primero determinarán todos los cambios que haya realizado en un conjunto de datos y luego guardarán esos cambios de nuevo en el almacén persistente (la base de datos, típicamente). –

Respuesta

26

De MSDN:

SaveChanges opera dentro de una transacción. SaveChanges rodarán espalda que transacción y lanzar una excepción si cualquiera de los objetos ObjectStateEntry sucios no se pueden conservar

SubmitChanges inicia una transacción y se extenderá de nuevo si se produce una excepción mientras SubmitChanges se está ejecutando. Sin embargo, esto no revierte los cambios en la memoria ni es rastreado por DataContext; esos cambios deberán ser revertidos manualmente. Puede comenzar con una nueva instancia de DataContext si los cambios en la memoria deben descartarse.

Cuestiones relacionadas