EF Update using EntityState.Modified

entity-framework

Question

Usually I'm using this code

Member member = ctx.Members.Find(id);
member.Name = txtName.Text;
ctx.Entry(member).State = EntityState.Modified;
ctx.SaveChanges();

when I want to update the model using entity framework. I found an example on SO that doesn't use EntityState.Modified to update the model. I try to remove the line and it's still working. What is the pros and cons use EntityState.Modified and doesn't use EntityState.Modified?

Notes: I'm using Entity Framework 6 Code First in WinForms

1
11
5/23/2017 12:00:14 PM

Accepted Answer

The EntityState.Modified is useless in your case because the entity your are updating is already tracked by the context as you retrieve it from the context.

You would need it in the following scenario where you don't retrieve your entity from the context :

Member member = new Member({Id=1, Name="member"}) ;
context.Entry(member).State = EntityState.Modified; 
context.SaveChanges();

Also, as specified in previous answer, your context sometimes tracks only a limited "view" of the database and therefore you need to init the tracking manually like above.

Microsoft doc

16
5/15/2015 5:47:11 AM

Popular Answer

Like the other guys have mentioned your context tracks the changes to the object automatically.

I find it more useful for instance when I use return json to a mvc controller where the original object loses change tracking when first converted to json for the view. In that case I have to specifically set the objects entity state before saving changes.



Related Questions





Related

Licensed under: CC-BY-SA with attribution
Not affiliated with Stack Overflow
Licensed under: CC-BY-SA with attribution
Not affiliated with Stack Overflow