函数导入(存储过程)需要 SaveChanges() 吗?
函数导入(存储过程)是否需要 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?
}
Is SaveChanges() necessary with function imports (stored procedures)?
Example:
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?
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
根据 MSDN,
SaveChanges
也就是说,对于附加到上下文以及您添加、修改或删除的任何实体,EF 将生成相应的 SQL 代码并针对数据库运行它。在您的情况下,您已经通过调用
AddProduct
存储过程直接针对数据库运行 SQL 代码(或多或少)。因此,在您的情况下,SaveChanges
不会执行任何操作,也没有必要(当然,除非您对 ObjectContext 有其他未保存的更改)。According to MSDN,
SaveChanges
That is, for any entities that are attached to the context and which you have added, modified or deleted, EF will generate the corresponding SQL code and run it against the database. In your case you are already running SQL code (more or less) directly against the database by calling the
AddProduct
stored procedure. So in your caseSaveChanges
won't do anything and is not necessary (unless you have other unsaved changes on the ObjectContext of course).