DbSet.Attach(实体)与DbContext.Entry(实体).State = EntityState.Modified 区别

Posted youmingkuang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DbSet.Attach(实体)与DbContext.Entry(实体).State = EntityState.Modified 区别相关的知识,希望对你有一定的参考价值。

当你使用这个DbSet.Update方法时,实体框架将你实体的所有属性标记为EntityState.Modified,所以跟踪它们。如果你只想更改部分属性,而不是全部属性,请使用DbSet.Attach

这种方法使你的所有属性EntityState.Unchanged,所以你必须使你的属性,你想更新EntityState.Modified。因此,当应用程序命中DbContext.SaveChanges,它只会运行修改后的属性。

 

以上是关于DbSet.Attach(实体)与DbContext.Entry(实体).State = EntityState.Modified 区别的主要内容,如果未能解决你的问题,请参考以下文章

实体框架 [Key] 标签未被识别

如何仅更新多对多导航属性?

在 EF 4.1 中拆分 Db 模型

多用户类型标识 - DbContext 设计

启动/首次查询极慢

EF中执行sql语句