9

He estado leyendo en AutoMapper debido a una respuesta a una de mis preguntas anteriores here.

Dice que AutoMapper aplana modelos de dominio complejos, pero necesito algo que haga lo contrario. Necesito conectar mis modelos de vista (modelos de dominio plano) a los modelos de dominio complejos para poder transformar rápidamente un modelo de vista en un modelo de dominio.

¿Hay algo similar a AutoMapper que tome un modelo de vista y lo convierta en un modelo de dominio complejo?AutoMapper aplana los Modelos de dominio pero ¿hace lo contrario? Si no, ¿qué hace?

+0

puede hacerlo con la ValueInjecter http://valueinjecter.codeplex.com/ – Omu

Respuesta

1

No realmente, porque tendría que ser extremadamente convencional para ser útil. Es fácil discernir patrones cuando se aplana, pero a la inversa ... demasiada lógica personalizada.

+2

ValueInjecter hace http://valueinjecter.codeplex.com/ – Omu

+0

no solo eso, sino que parece que el mapeo bidireccional es una práctica cuestionable: http://lostechies.com/jimmybogard/2009/09/18/the-case-for -two-way-mapping-in-automapper /. – gabe

4

¡Sí! Crea un método MapToModel donde hace la codificación de mano derecha/mano izquierda y sincroniza los dos juntos.

public MyModel MapToModel(MyViewModelForm vmf) 
{ 
    //new up MyModel model; 
    model.foo = vmf.foo; 

    return model; 
} 

Si las aplicaciones codificadas sí mismos, qué es exactamente lo que haría para ganarse la vida ...?

+2

aplicaciones que se codifican a sí mismas :) – Omu

2

la ValueInjecter lo hace, y es muy fácil de usar:

//flatenning 
personDto.InjectFrom<FlatValueInjection>(person); 

//unflattening 
person.InjectFrom<UnflatValueInjection>(personDto); 

y

//this is just mapping without flattening/unflattening 
foo.InjectFrom(bar) 
Cuestiones relacionadas