何时调用SaveChanges

本文关键字:SaveChanges 调用 何时 | 更新日期: 2023-09-27 17:51:13

比如我有这样的东西命名为Controller:

using (var context = new SqlContext())
{
    context.Items.Add(new Item("item1"));
}

我应该打电话给context.SaveChanges();吗?

何时调用SaveChanges

实体框架使用DbContext实现了一个工作单元模式,这意味着您定义了一个要对数据库执行的操作包,然后调用save更改将它们一次性全部传播到数据库。所有操作都将在单个事务中执行(对于单个saveChanges调用),这意味着所有操作或没有操作将立即传播到数据库。

在调用savechanges之前,更改将应用于本地跟踪图,但不会应用于数据库本身,直到调用savechanges。

是。

你所做的每一个改变都不会被保存,直到context.SaveChanges();被调用。

请注意,如果您将有来自其他DbContext的对象(这绝对不是您给出的情况),您应该需要通过使用以下代码行来显式更改实体状态:

Item item = new Item("item1")
db.Entry(item).State = EntityState.Modified;
db.SaveChanges();