栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

ASP.NET Core(.Net 5)AutoMapper自动映射

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

ASP.NET Core(.Net 5)AutoMapper自动映射

  1. OOM
    Object-Object-Mapping实体间相互转换
  2. AutoMapper
    AutoMapper官方的解释:
    AutoMapper是一个对象-对象映射器。对象-对象映射通过将一种类型的输入对象转换为另一种类型的输出对象来工作。
    使AutoMapper变得有趣的是,它提供了一些有趣的约定,以免去搞清楚如何将类型A映射为类型B。只要类型B遵循AutoMapper既定的约定,就需要几乎零配置来映射两个类型。
    官网地址:https://docs.automapper.org/en/stable/Getting-started.html
其实就是AutoMapper帮助你无需手动的转换实体间关系
添加AutoMapper

引入NuGet包 AutoMapper.Extensions.Microsoft.DependencyInjection

注入AutoMapper的服务

AddAutoMapper 将会自动扫描程序集里所有包含映射关系的Profile文件

然后通过 AppDomain.CurrentDomain.GetAssemblies() automapper会加载到AppDomain中

实体


使用AutoMapper创建实体之间的关系,定义类继承 Profile
CreateMap<原对象,映射目标对象>;
.ReverseMap 相互转换映射

在Controller中使用AutoMapper并调用

集合时加List  _mapper.Map>(数据);

查看测试结果

其他方法
如果映射字段不一致
CreateMap().ForMember(dest => dest.Price, opt => opt.MapFrom(src => src
                .OriginalPrice));
或者需要计算
CreateMap().ForMember(dest => dest.Price, opt => opt.MapFrom(src => src
                .OriginalPrice * (decimal)(src.DiscountPresent ?? 1))).ReverseMap();
不想映射某个字段
 CreateMap().ForMember(d=>d.Title,o=>o.Ignore());
 
字符串为空处理
 CreateMap().ForMember(d=>d.Title,o=>o.NullSubstitute("No data"));
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/908514.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号