Мне нужно переключить контекст данных для некоторых записей.Таким образом, в основном у меня есть db-контекст A и B, я выбираю записи, используя A, затем переключаюсь на B, изменяю записи и сохраняю их.
Когда я вызываю Attach для B, я получаю исключение, что записи используютсямногократный контекст данных, когда я добавляю Detach для A, я получаю исключение, что записи не присоединяются к A.
Так как я могу переключить контекст данных?
Пример
db_creator является создателем контекста БД.Здесь я получаю данные (исправленная версия):
using (var db = db_creator.Create())
{
var coll = db.Mailing.Where(it => !it.mail_IsSent).ToList(); // (*)
coll.ForEach(it => db.Detach(it));
return coll;
}
(*) ошибка была вызвана рефакторингом этого фрагмента, я создал дополнительный контекст данных, а затем попытался отсоединить записи от другого.
Теперь я хотел бы переключить контекст данных на новый, выполнить некоторые вычисления и модификации и сохранить записи. coll is Список записей:
using (var db = db_creator.Create())
{
coll.ForEach(it => db.Mailing.Attach(it));
...
db.SaveChanges();
}