Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Entity Framework Update Problem

I am using Entity Framework & LINQ to retrieve data. I am having a problem with the following:

var customer= db.customers.where(c=>c.id==1);
customer.name=santhosh;
customer.city=hyd;

The fields are changing in the database before I call:

db.SaveChanges();

How do I avoid this?

like image 463
Tom Crusie Avatar asked Jun 26 '26 15:06

Tom Crusie


1 Answers

As others have said, I believe that you are using your context in another place as well and that other location is calling savechanges and updating everything. Try doing what @Evan suggested with a using statment to make sure you have a fresh context.

AsNoTracking will not ensure that you get a entity that is not cached in the database, its purpose is to not put the objects inside the context. If you use AsNoTracking and then change the entities returned in the query you will need to attach them as modified to the context before calling savechanges or else they won't be updated.

    var customer= db.customers.AsNoTracking().Single(c=>c.id==1);
    customer.name=santhosh;
    customer.city=hyd;
    ctx.customers.Attach(customer);

    ctx.ObjectStateManager.ChangeObjectState(customer, System.Data.EntityState.Modified);

I would have just commented on the other posts but don't have enough rep yet.

like image 188
Jack Woodward Avatar answered Jun 29 '26 06:06

Jack Woodward



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!