函数导入(存储过程)是否需要SaveChanges() ?
本文关键字:SaveChanges 是否 存储过程 函数 导入 | 更新日期: 2023-09-27 18:10:52
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?
}
根据MSDN, SaveChanges
将所有更新保存到数据源并重置更改跟踪对象上下文。
也就是说,对于附加到上下文并且您已经添加、修改或删除的任何实体,EF将生成相应的SQL代码并在数据库中运行它。在您的示例中,您已经通过调用AddProduct
存储过程直接对数据库运行SQL代码(或多或少)。因此,在您的情况下,SaveChanges
不会做任何事情,也没有必要(除非您在ObjectContext上有其他未保存的更改)。