函数导入(存储过程)是否需要 SaveChanges() ?
示例:
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?
}
答案 0 :(得分:12)
根据MSDN,SaveChanges
保留对数据源的所有更新并重置更改跟踪 对象上下文。
也就是说,对于附加到上下文并且已添加,修改或删除的任何实体,EF将生成相应的SQL代码并对数据库运行它。在您的情况下,您已经通过调用AddProduct
存储过程直接针对数据库运行SQL代码(或多或少)。所以在你的情况下SaveChanges
将不会做任何事情而且没有必要(除非你在ObjectContext上有其他未保存的更改)。