【问题标题】:Automapper: map a collection composed by base class objectsAutomapper:映射一个由基类对象组成的集合
【发布时间】:2014-08-09 17:20:27
【问题描述】:

我正在使用AutoMapper

我在映射集合时遇到了一些问题。这是简化的结构。

public class A
{
}

public class B : A
{ 
}

public class C : A
{ 
}

public class Origin
{
    public List<A> Entities {get; set;}
}

 /********************/

public class A2
{
}

public class B2 : A2
{ 
}

public class C2 : A2
{ 
}

public class Destination
{
    public List<A2> Entities {get; set;}
}

Origin 类有一个 A 对象的集合,其中填充了 A、B 或 C 实例。

我想将 Origin 映射到 Destination,所以我添加了这个配置:

 Mapper.CreateMap<C, C2>();
 Mapper.CreateMap<B, B2>();
 Mapper.CreateMap<A, A2>();

问题是当 Origin 中的 Entities 集合映射到 Destination 中的集合时,所有的对象都只映射到 A2 实体。相反,我希望将 B 和 C 实体转换为 B2 和 C2 实体。

有什么建议可以实现这一点吗?

【问题讨论】:

    标签: c# inheritance automapper


    【解决方案1】:

    您也需要使用Include 对其进行配置。

    Mapper.CreateMap<C, C2>();
    Mapper.CreateMap<B, B2>();
    Mapper.CreateMap<A, A2>().Include<B, B2>().Include<C, C2>();
    

    更多:Mapping Inheritance

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-12
      • 2017-06-11
      • 1970-01-01
      • 1970-01-01
      • 2012-10-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多