代码之家  ›  专栏  ›  技术社区  ›  Yoda ESG

context.Entry(x).State=EntityState.Modified与context.Update(x)有什么区别?

  •  1
  • Yoda ESG  · 技术社区  · 4 年前

    两者的区别是什么 context.Entry(x).State = EntityState.Modified context.Update(x) ? 他们似乎做了完全相同的事情。

    1 回复  |  直到 4 年前
        1
  •  2
  •   Ivan Stoev    4 年前

    区别在于 related data

    提示

    EntityEntry.State 属性设置单个实体的状态。例如 context.Entry(blog).State = EntityState.Modified .

    因此,如果没有相关数据(导航属性),则没有区别,如果有,则第一个方法(设置 State )提供更精确的控制(更少的副作用),而第二个( Update )可能会导致意外行为-基本上是将所有相关实体及其内容标记为已修改/添加,然后尝试插入新的或更新大量不应该插入的记录。