函数导入(存储过程)是否需要 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 , 保存更改
Persists all updates to the data source and resets change tracking in the object context.
也就是说,对于附加到上下文以及您添加、修改或删除的任何实体,EF 将生成相应的 SQL 代码并针对数据库运行它。在您的情况下,您已经通过调用 AddProduct
存储过程直接针对数据库运行 SQL 代码(或多或少)。因此,在您的情况下,SaveChanges
不会执行任何操作,也没有必要(当然,除非您对 ObjectContext 进行了其他未保存的更改)。
关于c# - 函数导入(存储过程)是否需要 SaveChanges()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7726913/