Automapper новичок вопрос относительно списка свойств - PullRequest
1 голос
/ 08 января 2010

Как новый поклонник AutoMapper, как бы я использовал его, чтобы сделать следующее:

Учитывая следующие классы, я хочу создать FlattensGroup из группы, где список строк элементов соответствует свойству title элемента 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; }
}

Спасибо

Иосиф

Ответы [ 2 ]

7 голосов
/ 11 января 2010

Другое, что вы можете сделать, это создать конвертер из Item -> string:

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

Теперь вам не нужно делать ничего особенного в вашей Группе -> Карта FlatenedGroup:

Mapper.CreateMap<Group, FlattenedGroup>();

Это все, что тебе нужно там.

1 голос
/ 11 января 2010

Попробуйте, возможно, вы можете использовать Linq и лямбда-выражение для сопоставления списка строк в FlatenedGroup с заголовками в Group.

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

Убедитесь, что вы добавили System.Linq в свои операторы использования

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...