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

问题描述 投票:3回答:2

我有2个对象: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)

谁能帮我。谢谢

c# automapper
2个回答
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


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

然后映射

© www.soinside.com 2019 - 2024. All rights reserved.