0

ビュー モデルとドメイン モデルをマッピングするための一般的なマッパー関数があります。何らかの理由で、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;
}

ビュー モデルからドメイン モデルにマッピングするときに、列挙型の値を整数にマッピングする必要があります。また、ドメイン モデルからビュー モデルにマッピングするときに、整数から列挙値にマッピングします。

ソリューションが、null 許容列挙型からより多くの型 (short、byte など) に、またはその逆に変換できるほど柔軟であれば、それは素晴らしいことです。

4

1 に答える 1

0

autofacマッパーを使用していますか?

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);
于 2021-12-06T15:40:59.277 に答える