gpt4 book ai didi

c# - Automapper:映射由基类对象组成的集合

转载 作者:行者123 更新时间:2023-12-02 21:24:51 24 4
gpt4 key购买 nike

我正在使用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 中的实体集合映射到 Destination 中的集合时,所有对象仅映射到 A2 实体。相反,我希望将 B 和 C 实体转换为 B2 和 C2 实体。

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

最佳答案

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

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

更多:Mapping Inheritance

关于c# - Automapper:映射由基类对象组成的集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25213534/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com