C# 自动映射,从泛型列表继承 公共舱航班{ 公共舱室集合舱室{get;set;} } 公共类CABIN集合:列表 { 公共空间{set;get;} }

C# 自动映射,从泛型列表继承 公共舱航班{ 公共舱室集合舱室{get;set;} } 公共类CABIN集合:列表 { 公共空间{set;get;} },c#,automapper,C#,Automapper,源类和目标类具有相同的成员 public class Flight { public CabinCollection Cabins { get; set; } } public class CabinCollection : List<Cabin> { public Cabin Lowest { set; get; } } 1)映射器。初始化(cfg=>{ CreateMap(); CreateMap();

源类和目标类具有相同的成员

    public class Flight {
        public CabinCollection Cabins { get; set; }
    }

    public class CabinCollection : List<Cabin>
    {
        public Cabin Lowest { set; get; }
    }
1)映射器。初始化(cfg=>{
CreateMap();
CreateMap();
});
List res=Mapper.Map(航班);
它可以工作,但成员“lower”为空

   1)  Mapper.Initialize(cfg => {
        cfg.CreateMap<Domain.Flight, Contract.Flight>();
        cfg.CreateMap<Domain.Cabin, Contract.Cabin>();
    });

    List<Flight> res = Mapper.Map<List<Flight>>(flights);
2)映射器。初始化(cfg=>{
CreateMap();
CreateMap();
cfg.CreateMap
.IncludeBase()
});
它可以工作,并且映射了成员“lower”,但列表为空


有什么方法可以使它正确吗?

将其添加到您的配置中

   2)  Mapper.Initialize(cfg => {
            cfg.CreateMap<Domain.Flight, Contract.Flight>();
            cfg.CreateMap<Domain.Cabin, Contract.Cabin>();
            cfg.CreateMap<Domain.CabinCollection,Contract.CabinColection>
                .IncludeBase<List<Domain.Cabin>, List<Contract.Cabin>>()
        });
cfg.CreateMap();
基本上,Automapper不知道如何映射
CabinCollection
对象


将此添加到您的配置中

   2)  Mapper.Initialize(cfg => {
            cfg.CreateMap<Domain.Flight, Contract.Flight>();
            cfg.CreateMap<Domain.Cabin, Contract.Cabin>();
            cfg.CreateMap<Domain.CabinCollection,Contract.CabinColection>
                .IncludeBase<List<Domain.Cabin>, List<Contract.Cabin>>()
        });
cfg.CreateMap();
基本上,Automapper不知道如何映射
CabinCollection
对象


此代码在没有任何附加配置的情况下应该可以工作。它确实可以工作,但没有返回预期的值result@ShawnQian我面临着同样的问题,你有什么想法来解决这个问题吗?谢谢。这段代码不需要任何额外的配置就可以工作。它确实可以工作,但没有返回预期的结果result@ShawnQian我面临着同样的问题,你有什么想法来解决这个问题吗?谢谢。这仍然不会映射
CabinCollection
的元素,只映射最低层的CabinCollection。目的地列表将为空。这仍然不会映射
CabinCollection
的元素,仅映射最低舱。目标列表将为空。