我正在尝试使用Automapper v3从Post结构映射到Postmodel类。我需要将术语名称映射到我的Categories数组,但仅当Type等于“Category”时。
这是我的代码
public class NewsModel
{
public NewsModel(int id)
{
Mapper.Initialize(cfg =>
{
cfg.CreateMap<Post, PostModel>();
});
Posts = new List<PostModel> {Mapper.Map<PostModel>(_newsGetter.GetItem(id))};
}
public List<PostModel> Posts { get; set; }
}
映射到此课程
public class PostModel
{
public String[] Categories { get; set; }
}
从此结构中映射
public struct Post
{
public Term[] Categories { get; set; }
}
public Struct Term
{
public string Name{ get; set; }
public string Type{ get; set; }
}
非常感谢任何帮助。
答案 0 :(得分:0)
最简单的解决方案是将过滤后的类别从Post
映射到PostModel
。
cfg.CreateMap<Post, PostModel>()
.ForMember(pm => pm.Categories
, o => o.MapFrom(p => p.Categories.Where(t => t.Name != "Category")));
然后只需使用Term
string
转换为ConvertUsing
cfg.CreateMap<Term, string>().ConvertUsing(t => t.Name);