Actualmente estoy usando ViewModels para separar mis vistas de la estructura del modelo real.Modelo "Merge" y ViewModel con o sin AutoMapper?
Por ejemplo, tengo una entidad de persistencia de usuario y un MiPerfil de modelo de vista que contiene toda la información que un usuario puede cambiar por sí mismo. Para la conversión de Usuario a Mi Perfil, estoy usando Automapper.
Ahora, después de que un usuario publique su información (modificada), debo guardarla. Pero la información en ViewModel no está completa, y cuando AutoMapper crea una entidad de persistencia del Usuario desde el ViewModel, se pierde información importante.
No quiero exponer esta información a la capa de vista, especialmente no con elementos de formulario ocultos.
Así que necesito una forma de combinar un ViewModel en una entidad de persistencia. ¿Puedo hacer eso con AutoMapper, o tengo que hacerlo manualmente?
Ejemplo:
Mi clase de usuario contiene la identificación, nombre, apellido, nombre de usuario y contraseña. El usuario solo debe editar su Nombre y Apellido en su perfil. Por lo tanto, mi ProfileViewModel contiene ID, Firstname y Lastname. Después de volver a publicar la información del formulario, Automapper crea un objeto User desde el ProfileViewModel transferido, y en este objeto solo se establecen ID, Firstname y Lastname. Al alimentar esta entidad a mi repositorio, he perdido la información de nombre de usuario y contraseña.
Por qué la información no es completa? ¿Podrías publicar un fragmento de código? –
Estaba usando Mapper.Map (modelo) en lugar de buscar primero la entidad de usuario y luego usar Mapper.Map (usuario, modelo) –
ckonig