从4.2.X到最新版AutoMapper的低影响迁移路径

时间:2018-02-01 15:15:11

标签: c# automapper

我将尝试迁移到最新的稳定版本的自动映射器。使用的当前版本是4.2.1.0。

使用70多个实体地图的次数超过500次:

Mapper.CreateMap<Data.Entities.Entity, Domain.Models.Entity>();
...
Mapper.Map<Data.Entities.Entity, Domain.Models.Entity>(x)).ToList();

我正在寻找可能已成功从4.2.x迁移的人员的迁移建议。希望我能找到一个重构最少的迁移路径。

1 个答案:

答案 0 :(得分:1)

您需要将所有这些内容移至一个Mapper.Initialize来电,但通常我们会将每个内容组织在Profile内。如果您对正则表达式感到满意,则应该能够使用它将所有这些事件输出到单个文件中。像/Mapper\.CreateMap.*;/之类的东西(你可能需要调整以获得跨越行的语句)。

收集完所有CreateMap个来电后,您只需将其包含在:

Mapper.Initialize(cfg => {
    cfg.CreateMap(...);
});

您正在使用Mapper.CreateMap替换cfg.CreateMap,因此这是一个简单的文本替换。

然后,您可以再次使用正则表达式,而不仅仅匹配Mapper.CreateMap的原始出现次数并删除它们。

这也是我在迁移ORM时使用的技术,正则表达式让我获得90-100%的方式。