使用AutoMapper映射嵌套类属性和基类

问题描述

如何在c#中使用AutoMapper映射嵌套类,

我正在上课……。

public class Source{
public int Id {get;set;}
public Address Address {get;set;}
}

public class Dest{
public int Id {get;set;}
public AddressModel Address {get;set;}
}

如何映射具有映射的Address和AddressModel的SourceDest类 我是AutoMapper的新手,请帮助...

我的映射现在看起来如下。

CreateMap<Source,Dest>().ForMember(dest=>dest.AddressModel,opt=>opt.MapFrom(src=>src.Address)).ReverseMap();

解决方法

如果源和目标名称与子属性i-e相同,则Automapper会自动映射子属性

public class Source
    {
        public int Id { get; set; }
        public Address Address { get; set; }
    }

    public class Dest
    {
        public int Id { get; set; }
        public AddressModel Address { get; set; }
    }

    public class Address
    {
        public string Name { get; set; }
    }

    public class AddressModel
    {
        public string Name { get; set; }
    }

映射

CreateMap<Source,Dest>().ReverseMap();

UseCase

var source = new Source { Id = 1,Address = new Address { Name = "A" } };
var dest = _mapper.Map<Dest>(source);

在这里,您将在目标变量

中获得地址对象