0

我正在尝试使用 Automapper v3 从我的 Post 结构映射到我的 Postmodel 类。我需要将术语名称映射到我的类别数组,但前提是类型等于“类别”。

这是我的代码

    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; }

    }

任何帮助是极大的赞赏。

4

1 回答 1

0

最简单的解决方案是将过滤后的类别从 映射PostPostModel.

cfg.CreateMap<Post, PostModel>()
.ForMember(pm => pm.Categories
           , o => o.MapFrom(p => p.Categories.Where(t => t.Name != "Category")));

然后只需将其转换TermstringusingConvertUsing

cfg.CreateMap<Term, string>().ConvertUsing(t => t.Name);
于 2014-04-09T13:52:40.967 回答