JGC
JGC

Reputation: 12997

updating an entity in entity framework

I have an entity (TerminalCertification) which has relation to other entities. I want to make user to be able to update TerminalCertification but I'm not able to update related object which is updated by user. My update code is here:

public void UpdateTerminalCertification(TerminalCertification terminalCertification)
{
    var lastCertification = db.terminalCertifications.Find(terminalCertification.TerminalCertificationID);

    if (lastCertification==null)
        throw new TerminalCertificationNotFoundException(terminalCertification)                                   
        db.Entry(lastCertification).CurrentValues.SetValues(terminalCertification);
    }

I have searched stackoverflow and found below code but there is not such ObjectStateManager in DBContext class.

ObjectStateManager stateMgr = db.ObjectStateManager;    
ObjectStateEntry stateEntry = stateMgr.GetObjectStateEntry(model);
stateEntry.SetModified();

what should I do?

Upvotes: 4

Views: 2974

Answers (2)

Vaibhav Bora
Vaibhav Bora

Reputation: 1

Use the UpdateModel or TryUpdateModel method inside your controller. If you are doing it outside of the controller then this will not work.

Upvotes: 0

Jeff
Jeff

Reputation: 36553

You can cast your DbContext to an IObjectContextAdapter which has the underlying ObjectContext and then use the ObjectStateManager off of that.

Upvotes: 4

Related Questions