John
John

Reputation: 3546

Is EntityState.Modified required for an update?

I've seen a lot of people when updating a record use:

...
ms.Status = status;
db.Entry(ms).State = EntityState.Modified;
db.SaveChanges();

Is this line required? I was able to do an update without it.

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

I was wondering what this statement is actually used for if the context already knows it should update that record without you specifying it explicitly then why bother specifying it explicitly?

Upvotes: 19

Views: 10370

Answers (2)

TheRealTy
TheRealTy

Reputation: 2429

From my understanding this only needs to be used if the entity has been re-attached to the context. Otherwise no.

Upvotes: 1

Ladislav Mrnka
Ladislav Mrnka

Reputation: 364249

It is required if your changes in the entity was done when entity was not tracked by EF context (the entity was detached). If you load entity from the context, modify it and save it by the same context you don't need to use it because EF will track changes and set the state automatically.

Upvotes: 34

Related Questions