Свойства навигации не обновляются - PullRequest
0 голосов
/ 11 июня 2018

По какой-то причине мои действия по редактированию не обновляют мои свойства навигации. Проверьте коды

 public ActionResult Edit(ClienteViewModel clienteViewModel)
    {
        if (ModelState.IsValid)
        {
            var cliente = Mapper.Map<Clientes>(clienteViewModel);
            _context.Entry(cliente).State = EntityState.Modified;
            _unitOfWork.Commit();
            return RedirectToAction("Index");
        }
        return View(clienteViewModel);
    }

enter image description here

Есть идеи?

EDIT Я добавил скрытое поле с endereco.id в режиме редактирования, и теперь Endereco.Id собирается в контроллер, но ошибка все та же

enter image description here

1 Ответ

0 голосов
/ 11 июня 2018

Если вы посмотрите на первичный ключ Id вашего навигационного свойства Endereco, вы увидите, что его значение равно Guid.Empty 00000000-0000-0000-0000-000000000000.

Таким образом, при обновлении этой сущности будет сгенерирован SQL-запрос с помощью следующего предложения WHERE:

WHERE Id = '00000000-0000-0000-0000-000000000000'

Конечно, строки с этим пустым guid в вашей таблице не существует.

Ваш исходный код выполняет сопоставление с AutoMapper, поэтому убедитесь, что все свойства отображаются правильно при вызове строки ниже:

var cliente = Mapper.Map<Clientes>(clienteViewModel);

Обновления : На основании вашего комментария вы такженеобходимо убедиться, что состояние навигационного свойства изменено на EntityState.Modified (поскольку изменение состояния корневого объекта не влияет на навигационные свойства), как показано ниже:

_context.Entry(cliente.Endereco).State = EntityState.Modified;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...