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?
9
A
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.
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
- 1. ¿Por qué hace esto lo que hace?
- 2. ¿Qué hace "final" si lo coloca antes de una variable?
- 3. Android: Establecer el parámetro de Peso programáticamente hace lo contrario de lo que quiero
- 4. ¿Cómo lo hace AQTime?
- 5. Lo que lo hace un PaaS no SaaS - o ejemplos
- 6. ¿Qué hace exactamente removedOnCompletion = NO?
- 7. Crear si una entrada no existe, de lo contrario ¿actualizar?
- 8. DoEvents no hace los eventos ... ¿Por qué?
- 9. No entiendo por qué string.size devuelve lo que hace
- 10. InPlaceBitmapMetadataWriter.TrySave() devuelve verdadero pero no hace nada
- 11. lo hace O (N) significa
- 12. Por qué las clases se compilan en .class pero la interfaz no lo hace. Interfaz
- 13. Lo contrario de assert_select?
- 14. LaTeX: Cite, pero no hace referencia a
- 15. "El derecho tiene un valor no permitido por un perfil de provisión", pero no lo hace
- 16. Lo contrario de instanceof
- 17. ¿Qué hace document.domain = document.domain?
- 18. ¿No debería esto causar un desbordamiento? ¡No lo hace!
- 19. ¿Qué es lo que realmente hace una limpieza de TortoiseSVN?
- 20. window.URL.revokeObjectURL() no libera memoria inmediatamente (o no lo hace)?
- 21. ¿Qué hace que el dominio cruzado ajax sea inseguro?
- 22. MongoDB: Insertar registro si no existe, si lo hace caso omiso de
- 23. Si no clona en Java, ¿qué hace y cómo lo llama?
- 24. Consulta de acceso SQL: actualice la fila si existe, inserte si no lo hace
- 25. jQuery: no (: en primer lugar) no funciona en IE8, pero lo hace en FF y Chrome
- 26. Yendo donde PHP parse_url() no lo hace - Analizando solo el dominio
- 27. ¿Hace una propiedad visible en DataGridView pero NO en PropertyGrid?
- 28. ¿Qué hace glLoadIdentity() en OpenGL?
- 29. ¿Qué hace -n en si [-n "$ {TEMP_FILE_LIST}"]?
- 30. ¿Qué hace "nuevo" cuando lo llama un módulo de erlang?
puede hacerlo con la ValueInjecter http://valueinjecter.codeplex.com/ – Omu