Может ли кто-нибудь помочь мне с этим кодом, предположим, что он изменит свойства Lft и Rgt в отделе в списке selected_deparmtents. Проблема, с которой я сталкиваюсь, заключается в получении старого значения или предыдущего значения в переменной temp, которая содержит предыдущие свойства Lft и Rgt. То, что он делает, показывает обновленное значение свойства temp.Lft, которое неправильно. Я хочу, чтобы предыдущее свойство Lft выполняло калонирование. Кто-нибудь знает, как я могу обойти эту проблемуtemp value всегда показывает новое значение вместо старого значения
int counter = 0;
int lft = department.Lft;
int rgt;
Department temp;
List<Department> clones = new List<Department>(selected_departments);
foreach (Department dept in selected_departments)
{
if (counter < 1)
{
rgt = (dept.Rgt - dept.Lft);
dept.Lft = lft;
dept.Rgt = lft + rgt;
}
else
{
temp = clones.ElementAt(counter - 1); // <-- incorrect
// previous departments value should be old value
lft = lft + (dept.Lft - temp.Lft);// here temp.Lft always show the newly updated value
rgt = lft + (dept.Rgt - dept.Lft);
dept.Lft = lft;
dept.Rgt = rgt;
}
db.Entry(dept).State = EntityState.Modified;
db.SaveChanges();
counter++;
}
Счетчик работает и петли для следующей записи в отчете еще, но он всегда показывает недавно обновлен элемент вместо старого элемента в клонах – ONYX