Основная ошибка Entity Framework при обновлении существующей записи

В моем ASP.NET-Core Code First projectЯ получаю следующую ошибку на SaveChangesAsync() В следующих Action Method:

ошибка

DbUpdateConcurrencyException: Database operation expected to affect 1 row(s) but actually affected 0 row(s). Data may have been modified or deleted since entities were loaded

Метод действия:

public async Task<IActionResult> UpdateWeekDay(int iWeekDay)
{
       if (ModelState.IsValid)
       {
            WeekModel oWeekModel = new WeekModel();
            oWeekModel.DayOfWeek= iWeekDay;
            _context.Update(oWeekModel);
            await _context.SaveChangesAsync();
            return View();
        }
}

Модель:

public class WeekModel
{
    [Key]
    public int WeekId { get; set; }
    public int DayOfWeek { get; set; }
}

ПРИМЕЧАНИЕ: соответствующая таблица Weeks в БД SQL Server 2014 есть WeekId as an identity column and as the PK, Причем таблица содержит только одну запись.

ОБНОВЛЕНИЕ:

Следуя этому сообщению от пользователя sstan, я попробовал следующее в описанном выше методе действий. Это не дает мне ошибки, но и не обновляет базу данных:

WeekModel oWeekModel = new WeekModel();
_context.WeekModel.Attach(oWeekModel);
oWeekModel.DayOfWeek= iWeekDay;
await _context.SaveChangesAsync();

1 ответ

Решение

Следуя совету от @Tseng а также @ademcaglin и этот пост от@sstan Я смог решить проблему следующим образом. ПРИМЕЧАНИЕ. Кредит относится к вышеупомянутым пользователям (спасибо этим пользователям):

public async Task<IActionResult> UpdateWeekDay(int iWeekDay)
{
   if (ModelState.IsValid)
   {
      WeekModel oWeekModel = _context.WeekModel.Where(s => s.DayOfWeek > 0).FirstOrDefault<CurrentYear>();
      _context.WeekModel.Attach(oWeekModel);
      oWeekModel.DayOfWeek= iWeekDay;
      await _context.SaveChangesAsync();
      return View();
   }
}