SaveChanges()是否需要函数导入(存储过程)?

Did*_*xis 9 .net c# stored-procedures entity-framework entity-framework-4

的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?
}
Run Code Online (Sandbox Code Playgroud)

Yak*_*ych 12

根据MSDN,SaveChanges

保留对数据源的所有更新,并在对象上下文中重置更改跟踪.

也就是说,对于附加到上下文并且已添加,修改或删除的任何实体,EF将生成相应的SQL代码并对数据库运行它.在您的情况下,您已经通过调用AddProduct存储过程直接针对数据库运行SQL代码(或多或少).所以在你的情况下SaveChanges不会做任何事情而且没有必要(除非你在ObjectContext上有其他未保存的更改).