4

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?

2 Answers 2

4

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

Sign up to request clarification or add additional context in comments.

5 Comments

it throws this error:The ObjectStateManager does not contain an ObjectStateEntry with a reference to an object of type ...
Attach the entity to the DbContext first.
how to attach my object to DBContext?
also, you can read about it here : thedatafarm.com/blog/data-access/…
0

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

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.