Reputation: 3546
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
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
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