Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 函数导入(存储过程)是否需要SaveChanges()?_C#_.net_Entity Framework_Stored Procedures_Entity Framework 4 - Fatal编程技术网

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()?”—由于缺乏文档,我不清楚我应该还是不应该这样做。