9

¿Es SaveChanges() necesario con importación de funciones (procedimientos almacenados)?¿Es SaveChanges() necesario con las importaciones de funciones (procedimientos almacenados)?

Ejemplo:

void foo(Product product) 
{ 
    // AddProduct is a function import of a stored procedure 
    entities.AddProduct(product.Name, product.Price, product.Description); 

    entities.SaveChanges(); // Is this necessary? 
} 
+8

lo has probado? :) – AndrewC

+0

Tengo. No parece marcar la diferencia de ninguna manera. El procedimiento almacenado subyacente se llama. Tal vez debería haber reformulado y preguntado, '¿DEBO llamar a SaveChanges()?' -No me queda claro por falta de documentación, si debería o no debería hacerlo. – Didaxis

Respuesta

11

Según MSDN, SaveChanges

Persiste todos los cambios a la fuente de datos y se restablece el seguimiento de cambios en el contexto del objeto.

Es decir, para las entidades que están adjuntas al contexto y que ha agregado, modificado o eliminado, EF generará el código SQL correspondiente y lo ejecutará contra la base de datos. En su caso, ya está ejecutando el código SQL (más o menos) directamente en la base de datos llamando al procedimiento almacenado AddProduct. Entonces, en su caso SaveChanges no hará nada y no es necesario (a menos que tenga otros cambios no guardados en ObjectContext, por supuesto).

Cuestiones relacionadas