Я перебираю строки в таблице базы данных и обновляю баланс счета каждой строки, если она удовлетворяет требуемым условиям.
Вместо строки, которая удовлетворяет условию обновления в одиночку, она обновляетсяи одновременно с тем же запросом создается новая строка с обновленными значениями.
Я использую этот же код в том же приложении для изменения остатков на счетах в отдельных строках, и он отлично работает. Но когда я обращаюсь к нему из цикла foreach, возникает указанная выше проблема:
public bool CreditCustomerAccount(CustomerAccount account, decimal amount)
{
try
{
if (account.Type == AccountType.Current || account.Type == AccountType.Savings)
{
account.AccountBalance += amount;
}
else
{
account.AccountBalance -= amount;
}
_context.Entry(account).State = EntityState.Modified;
_context.SaveChanges();
return true;
}
catch (Exception)
{
return false;
}
}
Она обновляет соответствующую строку, но также создает новую запись таблицы базы данных с обновленными деталями