2010-01-08 3 views
1

En tant que nouveau fan de AutoMapper, comment pourrais-je l'utiliser pour effectuer les opérations suivantes:Automapper newbie question concernant la propriété de la liste

Compte tenu des classes suivantes, je veux créer FlattenedGroup du groupe où la liste des cartes de chaîne de l'élément à la propriété title de Item.

public class Group 
{ 
    public string Category { get; set; } 
    public IEnumerable<Item> Items { get; set; } 
} 

public class Item 
{ 
    public int ID { get; set; } 
    public string Title { get; set; } 
} 


public class FlattenedGroup 
{ 
    public string Category { get; set; } 
    public IEnumerable<string> Items { get; set; } 
} 

Merci

Joseph

Répondre

7

L'autre chose que vous pouvez faire est de créer un convertisseur de l'article -> string:

Mapper.CreateMap<Item, string>().ConvertUsing(item => item.Title); 

Maintenant vous don Pas besoin de faire quoi que ce soit de spécial dans votre groupe -> AplatisGroup map:

Mapper.CreateMap<Group, FlattenedGroup>(); 

C'est tout ce dont vous auriez besoin ici.

1

pour cette solution, vous pouvez probablement utiliser LINQ et une expression lambda pour cartographier la liste des chaînes en FlattenedGroup avec les titres du groupe.

Mapper.CreateMap<Group, FlattenedGroup>() 
       .ForMember(f => f.Category, opt => opt.MapFrom(g => g.Category)) 
       .ForMember(f => f.Items, opt => opt.MapFrom(g => g.Items.Select(d => d.Title).ToList())); 

Assurez-vous d'ajouter System.Linq à vos déclarations en utilisant

Questions connexes