9

Ho letto su AutoMapper a causa di una risposta a una delle mie precedenti domande here.

Si dice che AutoMapper appiattisce i modelli di domini complessi, ma ho bisogno di qualcosa che faccia il contrario. Ho bisogno di collegare i miei modelli di visualizzazione (modelli di dominio appiattiti) ai modelli di dominio complessi in modo da poter trasformare rapidamente un modello di vista in un modello di dominio.

C'è qualcosa di simile a AutoMapper che acquisisce un modello di vista e lo trasforma in un modello di dominio complesso?AutoMapper appiattisce i modelli di dominio ma fa l'opposto? Se no, cosa fa?

+0

si può fare con la ValueInjecter http://valueinjecter.codeplex.com/ – Omu

risposta

1

Non proprio, perché sarebbe estremamente convenzionale essere utile. È facile distinguere i pattern quando si appiattisce, ma l'altro modo è "rotondo ... troppa logica personalizzata".

+2

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

+0

non solo, ma sembra che la mappatura a due vie sia una pratica discutibile: http://lostechies.com/jimmybogard/2009/09/18/the-case-for -due-modo-mapping-in-automapper /. – gabe

4

Lo fai !. Crei un metodo MapToModel in cui esegui la codifica della mano destra/mano sinistra e sincronizzi i due insieme.

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

    return model; 
} 

Se le applicazioni si codificano da sole, cosa faremmo esattamente per vivere ...?

+2

applicazioni che si codificano da sole :) – Omu

2

il ValueInjecter lo fa, ed è abbastanza facile da usare:

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

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

e

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