Когда я получаю одну и ту же строку таблицы дважды для обновления в одном и том же контексте, я получаю:
" AcceptChanges не может продолжаться, поскольку значения ключей объекта конфликтуют с другим объектом в ObjectStateManager. Перед вызовом AcceptChanges убедитесь, что значения ключей являются уникальными. "
Проблема возникает в методе ChangeState.
То, что у меня есть, можно упростить до этого:
var obj1 = new test() { id = 1,name = "oiu"};
var dc = Context.Create();
dc.test.AddObject(obj1);
if (dc.test.Any(a => a.id == obj1.id))
dc.ObjectStateManager.GetObjectStateEntry(obj1).ChangeState(EntityState.Modified);
dc.SaveChanges();
//---- another iteration of the reading thread, another object, but same context:
var obj2 = new test() { id = 1, name = "ois" };
dc.test.AddObject(obj2);
if (dc.test.Any(a => a.id == obj2.id))
dc.ObjectStateManager.GetObjectStateEntry(obj2).ChangeState(EntityState.Modified);
dc.SaveChanges();
Есть ли выход или вокруг?