c# - Entity loaded twice in same Context, InvalidOperationException -


i have db-first entity framework application , following associations:

customer * <-> 1 country machine * <-> 1 customer 

everything fine until now. here problem:
have class condition associated machine customer:

condition * <-> 1 customer condition * <-> 1 machine 

in 1 special entity condition.machine.customer.country same entity condition.customer.country , invalidoperationexception message

an object same key exists in objectstatemanager

this exception appears when call

db.entry(condition).state = entitystate.modified; 

also country entites unchanged exception.

how can store condition entity?

if working in disconnected context can't rely on ef trackchanges mechanism, , graph relationships context saving in has no way of knowing whether child new/updated/no-change. when come save changes error you're seeing because child entity exists , ef attempting add again.

julie lerman has method involves managing own modified state, can correctly attach/detach entities needed.

another method shown here: http://www.entityframeworktutorial.net/entityframework4.3/update-one-to-one-entity-using-dbcontext.aspx

this reloads child entity trying save (without tracking), removes parent, , allows mark entity state of parent 'modified' , re-add child if has one.


Comments

Popular posts from this blog

php - Magento - Deleted Base url key -

javascript - Tooltipster plugin not firing jquery function when button or any click even occur -

java - WrongTypeOfReturnValue exception thrown when unit testing using mockito -