C# 基于条件的自动映射
我正在尝试使用Automapper v3从Post结构映射到Postmodel类。我需要将术语名称映射到类别数组,但仅当类型等于类别时 这是我的密码C# 基于条件的自动映射,c#,c#-4.0,automapper,automapping,automapper-3,C#,C# 4.0,Automapper,Automapping,Automapper 3,我正在尝试使用Automapper v3从Post结构映射到Postmodel类。我需要将术语名称映射到类别数组,但仅当类型等于类别时 这是我的密码 public class NewsModel { public NewsModel(int id) { Mapper.Initialize(cfg => { cfg.CreateMap<Post, Po
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 struct Post
{
public Term[] Categories { get; set; }
}
public Struct Term
{
public string Name{ get; set; }
public string Type{ get; set; }
}
非常感谢您的帮助。最简单的解决方案是将过滤后的类别从帖子映射到PostModel
到目前为止你尝试了什么?什么不起作用?我试过使用FormMember方法,但我无法开始工作。我所看到的每个示例都使用lamba表达式,但据我所知,这并不存在于任何覆盖中:/
public struct Post
{
public Term[] Categories { get; set; }
}
public Struct Term
{
public string Name{ get; set; }
public string Type{ get; set; }
}
cfg.CreateMap<Post, PostModel>()
.ForMember(pm => pm.Categories
, o => o.MapFrom(p => p.Categories.Where(t => t.Name != "Category")));
cfg.CreateMap<Term, string>().ConvertUsing(t => t.Name);