Изменяю данные пользователя на сайте, user_'у присваиваются поля user'a, но изменения не вступают в силу. Если же изменять поля пользователя по отдельности (к примеру user_.nickname = user.nickname
и т.д), то всё работает. В чем проблема?
[HttpPost]
public async Task<IActionResult> EditUser(User user)
{
User user_ = await userContext.Users.FirstOrDefaultAsync(u => u.Id == user.Id);
user_ = user;
await userContext.SaveChangesAsync();
return RedirectToAction("UserList");
}
EntityFramework отслеживает состояние всех своих объектов во внутренних списках и реагирует на них. То есть у него внутри есть список ссылок на все объекты и что вы там делаете с внешней переменной ему все равно. Сейчас вы просто теряете ссылку на полученный объект и ничего не происходит.
Для того, чтобы EntityFramework нормально отреагировал, надо ему сказать явно переписать состояние внутреннего объекта на внешний. Делается это методом Attach:
[HttpPost]
public async Task<IActionResult> EditUser(User user)
{
userContext.Users.Attach(user);
userContext.ObjectStateManager.ChangeObjectState(user, EntityState.Modified);
await userContext.SaveChangesAsync();
return RedirectToAction("UserList");
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Как реализовать функцию загрузки всех файлов из X директории в Y директорию на ftp
На форме находится PictureBox, в котором можно перетаскивать изображение путем зажатия левой клавиши мыши, и масштабировать путем прокрутки колесом...
Здравствуйте! Возникла следующая проблема: появилась необходимость вызвать функцию из приложения, написанного на С++, путём вызова ее из памяти...
Подскажите, как можно загрузить изображение во vuejs без перезагрузки страницы, то есть только добавляю, и отображает на странице мгновенно