8
votes

Quels sont les avantages de l'utilisation de MOWORAPPER?

Je dois faire un objet d'objet pour mentir le mappage entre les classes de domaine utilisés dans un projet C # et les classes envoyées aux clients Flash.

Mon premier choix était FaSTApper. Mais j'ai eu des problèmes avec elle (propriétés imbriquées, aucun constructeur sans paramètre défini). Il s'avère que ce n'est pas si facile de cartographier un type vraiment complexe avec Comtableapper. P>

Pourquoi ne pas mettre en œuvre des méthodes telles que ci-dessous? P>

  ClassA GetClassAByClassB(ClassB pObj)

   {  
     ClassA objA = new ClassA();  
     objA.Prop1 = pObj.Prop1;  
     objA.NestedType.Prop2 = pObj.Prop2;  
     //....Some more.....  
     return objA;  
   }  


0 commentaires

3 Réponses :


4
votes

Parce que avec STORPAPPER VOUS NE PAS STRAND> DOIVEZ Mettre en œuvre ces méthodes; -)

Votre approche nécessite d'écrire beaucoup de p> xxx pré>

COMASPAPPER utilise des conventions pour le comprendre lui-même. Quoi de plus, vous n'avez pas à vous soucier de POBJ == null code> (votre code lancera NullReferenceException code> dans ce cas). p>

Vous pouvez également définir des conversions sur votre carte (c.-à-d. String sur DateTime). P>

Mapper.CreateMap<User, UserModel>().ForMember(d => d.LastLogin, c => c.MapFrom<DateTime?>(u => u.Credential.LastLogin));


3 commentaires

Qu'en est-il des propriétés qui n'ont pas les mêmes noms? Et propriétés imbriquées? Je pense que je devrais changer de conventions, mais parfois la propriété d'un côté est "positionnelle" et sur son autre côté juste "x". (juste un exemple - les propriétés des anmes pourraient être assez imprévisibles). Donc, cela n'est-il pas comme si je ne devrais pas utiliser mon automapper dans mon cas?


@Katalonis - Ensuite, vous configurez le mappeur de la manière sécurisée de type à l'aide de Lambdas. Ajout d'un échantillon de code et d'un lien.


Parcours Flip Side est que si vous voyez plus dest.myprop, opt => opt.ignore () ou doss.myprop, opt => opt.mapfrom (SRC => Transformation (SRC. MyProp)) que vous n'avez gagné par la voiture, c'est moins formidable. Ou, comme ANK2K11 pointe , méfiez-vous lorsque la carte par magie-string-convention tombe sur sa face. Xiaoguo hits clou sur sa tête : " lorsque vos classes s'alignent classiquement , votre La configuration de mappage peut être aussi simple ". Sinon, vous sont Mise en œuvre de ces méthodes, juste avec SUR FABORAPPER.



5
votes

Le seul avantage que les réclamations de MOWERAPPER sont de la cartographie par convention. Voici une citation de "Introduction et échantillons" automapper "

ici réside la beauté de la FadifPPER. Quand vos classes alignent eux-mêmes conventionnellement, votre configuration de mappage peut être aussi SIMPLE

Cela vient avec un coût. Renommer ou modifier la cible ou le nom de la propriété source brisera la cartographie et introduisez un bogue d'exécution.

Si vous n'utilisez pas de cartographie par convention, MOWORAPPPER perd son avantage. Dans ce cas, je préférerais écrire une fonction d'usine comme celle-ci. xxx

alors vous construiriez l'objet de destination comme xxx

au lieu de xxx

personnellement, je préférerais une fonction d'usine pour sa explicite, sa lisibilité et sa convivialité de débogage. Bonne chance à essayer de savoir, dans le second cas, comment classb est mappé sur classa , si le profil de mappage est chargé ou pourquoi il y a une exception lorsque le < Code> Carte <> () La fonction est appelée ou pourquoi certaines des propriétés ont été attribuées de mauvaises valeurs.


0 commentaires

3
votes

Parfois à l'aide de mappeurs, il est très difficile de tracer les bugs. Par exemple, par exemple, si nous manquons d'employé en classe de données avec Emplyee dans la classe de modèle, des mappeurs tels que de minuscules mappers ne jettent aucune exception à moins que nous définissons explicitement les mappeurs comme une cartographie stricte et que ce code temporel compile et se déroule parfaitement, mais nous sommes parfaitement Impossible de tracer des erreurs. Cette situation arrive rarement avec la cartographie manuelle. La cartographie manuelle des objets a donc des avantages par rapport à la cartographie automatique.


0 commentaires