Во втором foreach
вы меняете data.CompanyId
. Затем, набрав ctx.SaveChanges
, вы меняете все компании на fromCompanyId
. Попробуйте удалить эту строку, например:
foreach (var data in ctx.AllData.Where(a => a.CompanyId == toCompanyId).Select(a => a).ToList())
{
ctx.AllData.Remove(data);
}
ctx.SaveChanges();
var alldata = ctx.AllData.Where(a => a.CompanyId == fromCompanyId ).Select(a => a).ToList();
foreach (var data in alldata)
{
var model = new AllData();
model.CompanyId = toCompanyId;
model.CategoryId = data.CategoryId;
model.OtherFields = data.OtherFields;
ctx.AllData.Add(model);
}
ctx.SaveChanges();
Пока вы вызываете ctx.SaveChanges
, вы сохраняете, что все изменения были выполнены во всех данных контекста.