C# 函数导入(存储过程)是否需要SaveChanges()?
函数导入(存储过程)是否需要保存更改() 例如:C# 函数导入(存储过程)是否需要SaveChanges()?,c#,.net,entity-framework,stored-procedures,entity-framework-4,C#,.net,Entity Framework,Stored Procedures,Entity Framework 4,函数导入(存储过程)是否需要保存更改() 例如: 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? } 根据,Save
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?
}
根据,SaveChanges
保存对数据源的所有更新,并重置中的更改跟踪
对象上下文
也就是说,对于附加到上下文并已添加、修改或删除的任何实体,EF将生成相应的SQL代码并对数据库运行它。在您的情况下,您已经通过调用
AddProduct
存储过程直接对数据库运行了SQL代码(或多或少)。因此,在您的情况下,SaveChanges
不会做任何事情,也不是必需的(当然,除非您在ObjectContext上有其他未保存的更改)。您尝试过吗?:)我有。这两种方式似乎都没有什么不同。调用底层存储过程。也许我应该重新措辞并问,“我应该调用SaveChanges()?”—由于缺乏文档,我不清楚我应该还是不应该这样做。