如何使用AutoMapper映射子列表对象

时间:2013-12-24 07:28:31

标签: c# automapper

我有两个对象:Parent和ParentDTO:

    public class Parent
    {
        public int ParentID { get; set;}
        public string ParentCode { get; set; }
        public List<Child> ListChild { get; set; }
    }

    public class Child
    {
        public int ChildID { get; set; }
        public string ChildCode { get; set; }
    }

    public class ParentDTO
    {
        public int ParentID { get; set; }
        public string ParentCode { get; set; }
        public List<ChildDTO> ListChild { get; set; }
    }

    public class ChildDTO
    {
        public int ChildID { get; set; }
        public string ChildCode { get; set; }
    }

我想使用AutoMapper将数据从Parent对象映射到ParentDTO对象(ListChild中的所有数据都必须传输到ListChildDTO)

任何人都可以帮助我。感谢

2 个答案:

答案 0 :(得分:2)

您应该能够创建顶级映射,AutoMapper将自动映射列表。

//Create Mappings
Mapper.CreateMap<Parent, ParentDto>();
Mapper.CreateMap<Child, ChildDto>();

//Map
Mapper.Map<Parent, ParentDto>();

在GitHub上的AutoMapper项目网站上查看Wiki。 http://docs.automapper.org/en/stable/Lists-and-arrays.html

答案 1 :(得分:0)

在地图上像这样修改您的代码之前

public class Parent
        {
            public Parent()
            {
                this.ListChild = new List<Child>();
            }
            public int ParentID { get; set; }
            public string ParentCode { get; set; }
            public List<Child> ListChild { get; set; }
        }

        public class Child
        {
            public int ChildID { get; set; }
            public string ChildCode { get; set; }
            public Parent Parent { get; set; }
        }

        public class ParentDTO
        {
            public ParentDTO()
            {
                ListChild = new List<ChildDTO>();
            }
            public int ParentID { get; set; }
            public string ParentCode { get; set; }
            public List<ChildDTO> ListChild { get; set; }
        }

        public class ChildDTO
        {
            public int ChildID { get; set; }
            public string ChildCode { get; set; }
            public ParentDTO ParentDTO { get; set; }
        }

然后地图