2010-12-14 5 views
10

En utilisant Automapper, comment gérez-vous le mappage d'une valeur de propriété sur un objet à une instance d'une chaîne. Fondamentalement, j'ai une liste d'objets Rôle et je veux utiliser Automapper pour mapper le contenu de chaque propriété "name" à une liste de chaînes correspondante (donc je me retrouve avec une liste de chaînes). Je suis sûr qu'il a une réponse évidente, mais je ne peux pas trouver le mappage que j'ai besoin d'ajouter à "CreateMap" pour le faire fonctionner.Automapper: Mappage d'une valeur de propriété d'un objet à une chaîne

Un exemple du code correspondant est présenté ci-dessous:

public class Role 
{ 
    public Guid Id{get;set;} 
    public string Name{get;set;} 
    ... 
    ... 
} 

// What goes in here? 
Mapper.CreateMap<Role, string>().ForMember(....); 

var allRoles = Mapper.Map<IList<Role>, IList<string>>(roles); 

Répondre

21

J'adore Automapper (et l'utiliser dans un certain nombre de projets), mais ce ne serait pas plus facile avec une simple déclaration de LINQ?

var allRoles = from r in roles select r.Name 

La façon d'y parvenir AutoMapper:

Mapper.CreateMap<Role, String>().ConvertUsing(r => r.Name); 
+0

vous êtes dans ce cas probablement raison et il cadrerait avec notre infrastructure, mais même si je serais intéressé à savoir si/comment pourrait être fait avec Automapper. –

+1

Désolé - vous auriez dû répondre à votre question initiale. :) Cela devrait fonctionner: Mapper.CreateMap (). ConvertUsing (r => r.Name); – PatrickSteele

+0

Merci de fournir une manière Automapper de le faire, cela fonctionne exactement comme je l'espérais. –

Questions connexes