自动映射:如何遍历集合

时间:2017-10-11 17:23:30

标签: c# .net automapper

现在我有一些看起来像这样的模型:

Consumer ResourceModel:

dense_tfidf

ConsumerResponseModel:

    public ConsumerResourceModel()
    {
        consumerData = new List<ConsumerData>();
        Memberships = new List<MemberResourceModel>();
    }

    public List<ConsumerData> consumerData { get; set; }
    public List<MemberResourceModel> Memberships { get; set; }

我当前的Mapping看起来像这样:

 public class ConsumerResponseModel
{
    public List<Consumer> consumers { get; set; }
}

public class Membership
{
    public string membershipType { get; set; }
}

public class Consumer
{
    public decimal consumerId { get; set; }
    public Name name { get; set; }
    public List<Membership> memberships { get; set; }
}

我已经为消费者和会员资格正确映射了所有内容,但我基本上不得不在我的方法中做这样的事情:

 public static class AutoMapperConfig
{
    public static void RegisterMappings()
    {
        Mapper.Initialize(config =>
        {
            config.CreateMap<ConsumerData, Consumer>()                    
                .ForMember(dest=>dest.memberships, opts=>opts.MapFrom(src=>new List<Membership>()))
                .ReverseMap();

            config.CreateMap<ConsumerData, Name>()
                .ReverseMap();

            config.CreateMap<MemberResourceModel, Membership>()  
                .ReverseMap();
        });
    }

虽然这个代码正在进行映射我需要它做的一切正常,我正在试图弄清楚如何调用Mapper.Map,它只是为我自动化这个集合中的所有内容而不是这个额外的方法迭代完成,只需在我的AutoMapperConfig类中完成所有操作。

我正在艰难地绕着如何让这件作品像我所做的那样工作。在ConsumerData中的AfterMap,消费者映射最终会创建空的成员资格。我还没有映射ConsumerResourceModel,因为一旦我学会了如何映射成员资格,我就可以移动一个级别来映射所有这些。

0 个答案:

没有答案