我有一个泛型映射函数,用于视图模型和域模型之间的映射。由于某些原因,它不映射Enum值。
public TDomainModel MapToDomainModel<TViewModel, TDomainModel>(TViewModel viewModel)
{
Mapper.CreateMap<TViewModel, TDomainModel>();
TDomainModel result = Mapper.Map<TViewModel, TDomainModel>(viewModel);
return result;
}
public TViewModel MapToViewModel<TDomainModel, TViewModel>(TDomainModel domainModel)
{
Mapper.CreateMap<TDomainModel, TViewModel>();
TViewModel result = Mapper.Map<TDomainModel, TViewModel>(domainModel);
return result;
}
当从视图模型映射到域模型时,我需要将枚举值映射到整数。并在从域模型映射到视图模型时,从整数映射到枚举值。
如果该解决方案足够灵活,可以将可空枚举转换为更多类型(短、字节等),则很好,反之亦然。
发布于 2021-12-06 07:40:59
用自动绘图器吗?
var config = new MapperConfiguration(cfg =>
{
cfg.CreateMap<TViewModel, TDomainModel>()
.ForMember(dest => dest.enumfield, opt => opt.MapFrom(src => (EnumFieldEnum)src.EnumField))
.ReverseMap();
});
mapper = config.CreateMapper();
...`
var yy= mapper.Map<TDomainModel>(xx);
https://stackoverflow.com/questions/18165928
复制相似问题