Entity framework 4 更新需要EntityState.Modified吗?

Entity framework 4 更新需要EntityState.Modified吗?,entity-framework-4,Entity Framework 4,我见过很多人在更新记录时使用: ... ms.Status = status; db.Entry(ms).State = EntityState.Modified; db.SaveChanges(); 这条线是必需的吗?我可以在没有它的情况下进行更新 db.Entry(ms).State = EntityState.Modified; 我想知道如果上下文已经知道它应该更新该记录,而您没有明确指定它,那么为什么还要显式指定它呢?如果您在实体中的更改是在EF上下文没有跟踪实体(实体已分离)的情况

我见过很多人在更新记录时使用:

...
ms.Status = status;
db.Entry(ms).State = EntityState.Modified;
db.SaveChanges();
这条线是必需的吗?我可以在没有它的情况下进行更新

db.Entry(ms).State = EntityState.Modified;

我想知道如果上下文已经知道它应该更新该记录,而您没有明确指定它,那么为什么还要显式指定它呢?

如果您在实体中的更改是在EF上下文没有跟踪实体(实体已分离)的情况下完成的,那么这是必需的。如果您从上下文加载实体,请修改它并将其保存在不需要使用它的同一上下文中,因为EF将跟踪更改并自动设置状态

据我所知,仅当实体已重新连接到上下文时才需要使用此选项。否则不需要其他场景:
this.Configuration.AutoDetectChangesEnabled=false
或实体来自
.AsNoTracking
查询(
context.myMsSet.AsNoTracking();