ções de atualização do @AutoMapper no ASP.NET MVC
Isto é provavelmente bastante simples para alguns, no entanto, estou um pouco confuso e não consigo encontrar um exemplo decente. Digamos que eu esteja usando modelos de vista e minha ação POST leve esse modelo de vista. Normalmente, eu faria algo ao longo das seguintes linhas:
[HttpPost]
public ActionResult Update(UserViewModel uvm)
{
User user = Mapper.Map<UserViewModel, User>(uvm);
_repository.Update(user);
return RedirectToAction("Index");
}
Embora essa não seja a imagem completa. O mapeamento funcionaria bem, no entanto, se eu apenas atualizasse o que mapeei, ele se livraria de dados valiosos no banco de dados, porque é claro que, neste caso, não estou atualizando a senha ou outros detalhe
Meu repositório se parece com isso:
public void Update(User user)
{
User u = Session.QueryOver<User>().Where(x => x.UserName == user.UserName).SingleOrDefault();
if (u == null)
throw new Exception("User not found");
u.Forename = user.Forename;
u.Surname = user.Surname;
u.EmailAddress = user.EmailAddress;
}
[Estou usando o NHibernate, para que ele salve o objeto novamente no banco de dados assim que a sessão for fechada (após a conclusão da solicitação) automaticamente para mim.]
Então, minha pergunta é: no meu repositório devo carregar a entidade "Usuário", atualizar os valores desejados e salvá-la novamente, ou então salvá-la ou existe outro método para fazer isso? A razão pela qual pergunto é porque parece um pouco ... "manual" se você entende o que quero dizer? Talvez esteja correto, mas eu só queria ver opiniões daqueles com mais experiência nessa área.
Felicidade