作为AutoMapper的新粉丝,我将如何使用它来执行以下操作:
鉴于以下类,我想从Group创建FlattenedGroup,其中项目字符串列表映射到Item的title属性。
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; }
}
由于
约瑟夫
答案 0 :(得分:7)
您可以做的另一件事是从Item创建转换器 - &gt;字符串:
Mapper.CreateMap<Item, string>().ConvertUsing(item => item.Title);
现在,您无需在群组中执行任何特殊操作 - &gt; FlattenedGroup地图:
Mapper.CreateMap<Group, FlattenedGroup>();
那就是你需要的全部。
答案 1 :(得分:1)
尝试一下,您可以使用Linq和lambda表达式将FlattenedGroup中的字符串列表映射到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添加到使用语句