Automapper不会将列表对象复制到另一个

时间:2016-10-21 14:43:13

标签: c# automapper .net-4.5.2

我有我的类类型列表,我需要将其复制到另一个类类型。在下面的代码中,我尝试将GenderEntity复制到Gender但没有结果

private void MapGender()
    {
        List<GenderEntity> _GenderEntity = _GenderServiceObject.GenderEntity();

        List<Gender> _Gender = new List<Gender>();

        var config = new MapperConfiguration(cfg =>
        {
            cfg.CreateMap<List<GenderEntity>, List<Gender>>();
        });

        IMapper mapper = config.CreateMapper();

        _Gender = mapper.Map<List<GenderEntity>, List<Gender>>(_GenderEntity);

        var x = "d";
    }

GenderEntity - 来源

public class GenderEntity
{
    public GenderEntity() { }

    public string Code { get; set; }

    public string Description { get; set; }

}

性别 - 目的地

 [DataContract]
public class Gender
{
    [DataMember]
    public string Code { get; set; }

    [DataMember]
    public string Description { get; set; }
}

性别实体用于WCF SOAP服务作为数据契约

返回列表类

 public class GenderService
{

    #region EBS Service return 'Gender'  
    public Gender GenderEBSEntity()
    {
        return GenderEBS.GetGender_EBS();
    }
    #endregion

    #region Mapped Gender Entity
    public List<GenderEntity> GenderEntity()
    {        
           return GenderEBS.GetGenderEntity();            
    }
    #endregion

}

2 个答案:

答案 0 :(得分:1)

您无需使用AutoMapper映射列表,只需创建如下地图:

cfg.CreateMap<GenderEntity, Gender>();

然后像这样映射:

 _Gender = mapper.Map<Gender[]>(_GenderEntity).ToList();

答案 1 :(得分:0)

我的回答......

 private void MapGender()
    {
       List<Gender> MappedGender = new List<Contracts.Data.Gender>();

       IList<GenderEntity> genderEntity = _GenderServiceObject.GenderEntity();

        if(genderEntity!=null)
        {
            var config = new MapperConfiguration(cfg =>
            {
                cfg.CreateMap<GenderEntity, Gender>();
            });

            IMapper mapper = config.CreateMapper();

            gender = mapper.Map<IList<GenderEntity>, IList<Gender>>(genderEntity).ToList();

        }

    }