自动映射器指定将一种属性类型映射到另一种属性类型的规则
本文关键字:类型 属性 映射 一种 另一种 规则 | 更新日期: 2023-09-27 18:32:32
我有一组业务对象,我需要将其保留为实体。 业务对象具有许多 TimeSpan 类型的属性。 我想将它们映射到我的实体上的长属性。
public class BusinessObject
{
public string Name { get; set; }
public TimeSpan ProcessingTime { get; set; }
public TimeSpan WaitTime { get; set; }
public TimeSpan RecordTime { get; set; }
}
public class Entity
{
public string Name { get; set; }
public long ProcessingTime { get; set; }
public long WaitTime { get; set; }
public long RecordTime { get; set; }
}
public void CreateMapping()
{
Mapper.CreateMap<BusinessObject, Entity>()
.ForMember(e => e.ProcessingTime, opt => opt.MapFrom(src => src.ProcessingTime.TotalMilliseconds))
.ForMember(e => e.WaitTime, opt => opt.MapFrom(src => src.WaitTime.TotalMilliseconds))
.ForMember(e => e.RecordTime, opt => opt.MapFrom(src => src.RecordTime.TotalMilliseconds));
}
有没有一种方法可以在映射中指定所有 Timespan 属性都应映射到该映射的 long,而不必写出每个属性?
看起来您可以覆盖为 TimeSpan
的类型实例化的TypeConverter
https://github.com/AutoMapper/AutoMapper/blob/develop/src/AutoMapper/Mappers/TypeConverterMapper.cs