gpt4 book ai didi

c# - 具有基类和不同实现配置选项的自动映射器

转载 作者:IT王子 更新时间:2023-10-29 04:38:19 27 4
gpt4 key购买 nike

我有两个类(MVC View 模型)继承自一个抽象基类。

abstract class BaseModel { }

class Car : BaseModel
{
public string Speed { get; set; }
}

class Camper : BaseModel
{
public int Beds { get; set; }
}

并希望使用基类配置 AutoMapper,例如:

Mapper.CreateMap<BaseModel, DataDestination>();

var someObj = new DataDastination();
Mapper.Map(instanceOfBaseModel, someObj);

这里我得到错误,因为 Automapper 没有 Car 或 Camper 的配置。尝试用这样的东西配置 Automapper:

Mapper.CreateMap<BaseModel, DataDestination>()
.ForMember(dest => dest.SomeProp, mapper => mapper.MapFrom( .... ));

在 MapFrom 中,我只能看到基类的属性!如何配置 Automapper 以使用 BaseClass,以及 Car 和 Camper 的特定 ForMember 表达式?例如,如果是 Car,则从 this 映射此属性,如果是 Camper,则从其他地方映射此属性。

最佳答案

这里是描述Mapping Inheritance的主题.

以下应该适合您:

Mapper.CreateMap<BaseModel, DataDastination>()
.Include<Car, DataDastination>()
.Include<Camper, DataDastination>();//.ForMember(general mapping)
Mapper.CreateMap<Car, DataDastination>();//.ForMember(some specific mapping)
Mapper.CreateMap<Camper, DataDastination>();//.ForMember(some specific mapping)

关于c# - 具有基类和不同实现配置选项的自动映射器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11264455/

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