在AutoMapper中使用默认映射

问题描述 投票:1回答:1

我正在使用AutoMapper将一组Models映射到ViewModels。一切正常,但是对于我创建的每个模型/ viewmodel,我必须一遍又一遍地做一件事。我必须将某个属性从(例如)String映射到Int

所以我的映射现在看起来像这样:

Mapper.CreateMap<ModelOne, ModelOneViewModel>()
    .ForMember (d => d.SomeProperty, opt => opt.ResolveUsing(t => Convert.ToString(t.SomeProperty)));

Mapper.CreateMap<ModelOneViewModel, ModelOne>()
    .ForMember (d => d.SomeProperty, opt => opt.ResolveUsing(t => Convert.ToInt32(t.SomeProperty)));

Mapper.CreateMap<ModelTwo, ModelTwoViewModel>()
    .ForMember (d => d.SomeProperty, opt => opt.ResolveUsing(t => Convert.ToString(t.SomeProperty)));

// ... etc

有一种方法告诉自动映射器,当它从我的SomeProperty类映射到我的String类时,应该始终将Models映射到ViewModels吗?

反之亦然,当它从SomeProperty映射回Int32时,是否可以告诉自动映射器始终将属性ViewModels映射回Models

c# automapper
1个回答
1
投票

根据您的评论请求,Custom Type Converters可能会派上用场。

我目前没有任何其他信息,所提到的文章看起来不错,解释得很好。

© www.soinside.com 2019 - 2024. All rights reserved.