我正在尝试创建从我们的实体模型到 Dto 的映射,但每次尝试创建映射时我都失败了。
我有两个域类。这是我们模型的简化(Device
例如,有更多的属性代表一堆不同的东西):
class Device
{
public int Name {get; set;}
}
class DeviceAccessToken
{
public Device Device {get; set;}
public string Key {get; set;}
public string Secret {get; set;}
}
然后我想将DeviceAccessToken
实例映射到这个(也简化了,它具有原始模型DeviceDto
中存在的大部分字段):Device
class DeviceDto
{
public int Name {get; set;}
public string Key {get; set;}
public string Secret {get; set;}
}
有没有一种方法可以创建此映射,而无需在映射中明确指定Device
域模型的所有字段?
这实际上是我想要的,由 AutoMapper 配置文件表示:
class DeviceMappingProfile : Profile
{
protected override void Configure()
{
this.CreateMap<DeviceAccessToken, DeviceDto>();
this.CreateMap<Device, DeviceDto>()
.ForMember(dest => dest.Key, opt => opt.Ignore())
.ForMember(dest => dest.Secret, opt => opt.Ignore());
}
}
该.ForAllMembers
调用是使这项工作失败的尝试,它不能像我想象的那样发挥作用。
我知道我可以通过指定映射Device
中的每个属性来做到这一点DeviceAccessToken->DeviceDto
,但这将是一场噩梦并且非常多余,因为名称是相同的。