Pergunta

Como um novo fã do AutomApper, como eu o usaria para fazer o seguinte:

Dadas as classes a seguir, quero criar um grupo flattened a partir do grupo, onde a lista de string de itens mapas para a propriedade do título do 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; }
}

Obrigado

Joseph

Foi útil?

Solução

A outra coisa que você pode fazer é criar um conversor a partir do item -> string:

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

Agora você não precisa fazer nada de especial em seu grupo -> mapa do grupo flatted:

Mapper.CreateMap<Group, FlattenedGroup>();

Isso é tudo que você precisa lá.

Outras dicas

Experimente isso, você provavelmente pode usar o LINQ e uma expressão de Lambda para mapear a lista de strings em Group Group com os títulos do grupo.

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

Certifique -se de adicionar System.linq às suas declarações de uso

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top