使用AutoMapper的默认映射

时间:2012-10-03 10:30:28

标签: c# automapper

我使用AutoMapper将一组Models映射到ViewModels。一切正常,但我必须为我创建的每个模型/视图模型一遍又一遍地做一件事。我必须将某个属性(例如)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

有没有办法告诉automapper,当它从我的SomeProperty类映射到我的String类时,应始终将Models映射到ViewModels

反之亦然,那么当它从SomeProperty映射回Int32时,是否可以告诉automapper始终将属性ViewModels映射回Models? / p>

1 个答案:

答案 0 :(得分:1)

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

我暂时没有任何其他信息,上面提到的文章看起来很好 很好地解释了事情。