代码之家  ›  专栏  ›  技术社区  ›  Mere Mortal

是dbContext。SaveChanges()是否足以保存多个表的所有3个操作、插入、更新和删除?

  •  0
  • Mere Mortal  · 技术社区  · 2 年前
    //Say I have below lists:
    List<Table1> table1InsertLines;
    List<Table1> table1UpdateLinesFromDbContext;//(DbContext.Table1 lines are updated)
    List<Table2> table2DeleteLines;
    List<Table2> table2InsertLines;
    List<Table2> table2UpdateLinesFromDbContext;//(DbContext.Table1 lines are updated)
    List<Table1> table1DeleteLines;
    //And I do below steps
    dbContext.Table1.AddRange(table1InsertLines);
    dbContext.Table1.RemoveRange(table2DeleteLines);
    dbContext.Table2.AddRange(table1InsertLines);
    dbContext.Table2.RemoveRange(table2DeleteLines);
    dbContext.SaveChanges();
    

    鉴于SaveChanges本身就是一个事务,这是否足以确保一致性?

    0 回复  |  直到 2 年前
        1
  •  0
  •   David Browne - Microsoft    2 年前

    是的,DbContext将跟踪所有更改,并确保在调用Savechanges时调用Insert、Update和Delete查询。