2010-03-03 21 views

Respuesta

310

uso de la sobrecarga que toma el destino existente:

Mapper.Map<Source, Destination>(source, destination); 

Sí, devuelve el objeto de destino, pero eso es sólo para algunos otros escenarios oscuros. Es el mismo objeto.

+15

Gracias, Jimmy ... A propósito se mantuvieron alejados de AutoMapper porque tenía miedo de la curva de aprendizaje que afecta mi agenda. Lamento oficialmente que me haya mantenido alejado tanto tiempo ... es mucho más fácil de lo que inicialmente pensé. –

+6

Automapper tiene que ser una de las bibliotecas más útiles que existen. Yo también lo evité por mucho tiempo, demasiado tiempo. Empecé a usarlo hoy y estoy muy sorprendido de lo fácil que es usarlo. – mcottingham

+3

No funciona para mí. Intento hacer un mapa del mismo tipo, pero es un nuevo objeto de retorno. Usuario u1, u3 = nuevo Usuario(); u1 = new Usuario { Id = 1, NickName = "vami" }; Usuario u4 = Mapper.Map (u1, u3); Assert.AreEqual (u1.Id, u3.Id); Assert.AreEqual (u1.NickName, u3.NickName); –

10

Para hacer esto, debe crear CreateMap para los tipos de origen y destino, incluso si son del mismo tipo. Eso significa que si quieres Mapper.Map<User, User>(user1, user2); Es necesario crear un mapa como éste Mapper.Create<User, User>()

+0

¡Ja! Acabo de encontrar lo mismo y agregué un comentario a la respuesta aceptada. EN MIh la respuesta aceptada sin su explicación no está completa, pero después de mi comentario podría ser, finalmente :) –

+0

Esta es una gran adición. Sin embargo, la pregunta original no mencionaba los tipos de origen y destino, y no requería que fueran del mismo tipo. – jpaugh

Cuestiones relacionadas