Если я вас правильно понимаю;это должно работать .... но не для извлеченной сущности в первом контексте.Позвольте мне объяснить.
public void ChangeStatus(int id){
using(DBContext firstContext = new DBContext()){
var firstCar = firstContext .Cars.FirstOrDefault(x=>x.id == id);
firstCar .status = 1;
context.SaveChanges();
UpdateAnotherStatus(id);
//at this point, the data set in the secondContext
//did not update `firstCar` because they are completely seperate.
//to overcome this eighter refetch (slow) or use the firstCar object or firstContext
//to update status2
}
}
public void UpdateAnotherStatus(int id){
using(DBContext secondContext = new DBContext()){
var secondCar = secondContext .Cars.FirstOrDefault(x=>x.id == id);
secondCar .status2 = 2;
secondContext .SaveChanges();
}
}
В Entity Framework есть средство отслеживания изменений, позволяющее следить за всеми изменениями, внесенными в извлеченные объекты.Этот трекер изменений живет в контексте.Так что в разных контекстах есть разные трекеры изменений, которые (на самом деле) не знают друг друга.