【问题标题】:Is SaveChanges() Necessary with Function Imports (Stored Procedures)?函数导入(存储过程)是否需要 SaveChanges()?
【发布时间】:2011-10-11 13:35:28
【问题描述】:

函数导入(存储过程)是否需要 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?
}

【问题讨论】:

  • 你试过了吗? :)
  • 我有。无论哪种方式,它似乎都没有什么不同。调用底层存储过程。也许我应该改写并问,“我应该调用 SaveChanges() 吗?” - 由于缺乏文档,我不清楚我应该或不应该。

标签: c# .net entity-framework stored-procedures entity-framework-4


【解决方案1】:

根据MSDNSaveChanges

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-25
    • 1970-01-01
    • 1970-01-01
    • 2011-02-09
    • 2016-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多