2010-12-14 11 views
10

Mit Automapper behandeln Sie die Zuordnung eines Eigenschaftswerts für ein Objekt zu einer Instanz einer Zeichenfolge. Grundsätzlich habe ich eine Liste von Role-Objekten und möchte Automapper verwenden, um den Inhalt jeder "name" -Eigenschaft einer entsprechenden Liste von Strings zuzuordnen (so dass ich am Ende eine Liste mit Strings bekomme). Ich bin mir sicher, dass es eine offensichtliche Antwort gibt, aber ich kann das Mapping, das ich zu CreateMap hinzufügen muss, nicht finden, um es zum Laufen zu bringen.Automapper: Zuordnen eines Eigenschaftswerts eines Objekts zu einer Zeichenfolge

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); 

Antwort

21

I AutoMapper lieben (und es in einer Reihe von Projekten verwenden), aber wäre das nicht einfacher sein, mit einer einfachen LINQ-Anweisung:

Ein Beispiel für den entsprechenden Code ist unten dargestellt?

var allRoles = from r in roles select r.Name 

Die AutoMapper Art und Weise, dies zu erreichen:

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

In diesem Fall sind Sie wahrscheinlich Recht, und es wäre mit unserer Infrastruktur passen, aber auch so würde ich daran interessiert zu wissen, ob/wie es könnte mit Automapper gemacht werden. –

+1

Entschuldigung - sollte Ihre ursprüngliche Frage beantwortet haben. :) Dies sollte funktionieren: Mapper.CreateMap (). ConvertUsing (r => r.Name); – PatrickSteele

+0

Danke für die Bereitstellung eines Automapper-Weges, es funktioniert genau so, wie ich es mir erhofft hatte. –

Verwandte Themen