c# - Entity Framework Detached multiple many-to-many Entities -


usually, page have single main entity , have child entities. had solution before type of detached many-to-many

e.g.

db.entry(class).state = entitystate.modified; foreach(var student in class.student) {   var dbstudent = db.students.find(student.studentid);   dbstudent.classes.add(class); } 

my problem have multiple classes in view , causing "entity of same type has same primary key value"

e.g. looping list of classes

foreach(var class in viewmodel.classes) {   db.entry(class).state = entitystate.modified; } 

above code throw error on reaching 2nd class if same student present in both classes. because assigning entitystate loads child entities , create 2 instances of same student.

i tried manipulate creating temporary collection have single instance

e.g.

var students = new list<students>(); foreach(var class in viewmodel.classes) {   foreach(var student in class.students) {      student dbstudent = null;      if(!students.any(s => s.studentid == student.studentid)) {       dbstudent = db.student.find(student.studentid);       students.add(dbstudent);       db.entry(dbstudent).state = entitystate.modified;     }      else {       dbstudent = students.where(s => s.studentid == student.studentid).singleordefault();     }      dbstudent.classes.add(class);   }   db.entry(class).state = entitystate.modified; } 

the code above works new entries, existing entries causes "primary key error" me says detached. not work when trying remove existing entry.

anybody can me here? thanks


Comments

Popular posts from this blog

javascript - Any ideas when Firefox is likely to implement lengthAdjust and textLength? -

matlab - "Contour not rendered for non-finite ZData" -

delphi - Indy UDP Read Contents of Adata -