tnblog
首页
视频
资源
登录

AutoMapper映射自定义类型

6125人阅读 2021/6/15 15:39 总访问:3661988 评论:0 收藏:0 手机
分类: .net后台框架

.netcore

AutoMapper映射自定义类型

枚举

  1. public class UserState : Enumeration
  2. {
  3. public static readonly UserState Start
  4. = new UserState(0, "Start");
  5. public static readonly UserState Stop
  6. = new UserState(1, "Stop");
  7. protected UserState() { }
  8. protected UserState(int value, string displayName) : base(value, displayName) { }
  9. }

实体

  1. public class RoleRequestDTO
  2. {
  3. public string Id { get; set; }
  4. public string rolename { get; set; }
  5. public int status { get; set; }
  6. }
  1. public class RoleDOModel
  2. {
  3. public RoleDOModel() { }
  4. public RoleDOModel(string _Id, string _rolename, RoleStatus _status)
  5. {
  6. this.Id = _Id;
  7. this.rolename = _rolename;
  8. this.status = _status;
  9. }
  10. public string Id { get; set; }
  11. public string rolename { get; set; }
  12. public RoleStatus status { get; set; }
  13. }
  1. public class RoleDOModel
  2. {
  3. public RoleDOModel() { }
  4. public RoleDOModel(string _Id, string _rolename, RoleStatus _status)
  5. {
  6. this.Id = _Id;
  7. this.rolename = _rolename;
  8. this.status = _status;
  9. }
  10. public string Id { get; set; }
  11. public string rolename { get; set; }
  12. public RoleStatus status { get; set; }
  13. }

测试

  1. RoleStatus convertRoleStatus(int status)
  2. {
  3. var value = status == 0 ? RoleStatus.Start : RoleStatus.Stop;
  4. return value;
  5. }
  1. var config = new MapperConfiguration(cfg =>
  2. {
  3. cfg.CreateMap<RoleRequestDTO, RoleDOModel>()
  4. // 映射字段
  5. .ForMember(x => x.status, opt => opt.MapFrom(src => convertRoleStatus(src.status)))
  6. // 自定义转换
  7. .ConstructUsing(src => new RoleDOModel(src.Id, src.rolename, convertRoleStatus(src.status)))
  8. // 反向映射
  9. .ReverseMap()
  10. // 自定义转换
  11. .ConvertUsing(src => new RoleRequestDTO() { Id = src.Id, status = src.status.Value ,rolename = src.rolename })
  12. ;
  13. });
  14. config.AssertConfigurationIsValid();
  15. var mapper = new Mapper(config);
  16. RoleRequestDTO role = new RoleRequestDTO
  17. {
  18. rolename = "hh",
  19. status = 1
  20. };
  21. RoleDOModel rdo = mapper.Map<RoleRequestDTO, RoleDOModel>(role);
  22. RoleRequestDTO dto = mapper.Map<RoleDOModel, RoleRequestDTO>(rdo);

欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739

评价

映射AutoMapper

前言 DTO与AutoMapperDTODTO是个什么东东?DTO(Data Transfer Object)就是数据传输对象,说白了就是一个对象,只不过里边...

.NET CORE 中使用AutoMapper进行对象映射

AutoMapper基于约定的对象-对象映射器。AutoMapper使用流畅的配置API定义对象-对象映射策略。AutoMapper使用基于约定的匹配...

ABP 自动映射 AutoMapper

转载:https://www.cnblogs.com/sugarwxx/p/13298800.html自动映射有如下几种:AutoMap,AutoMapFrom和AutoMapTo1.AutoMap...

AutoMapper在C中的有趣应用

最近发现了一个比较有趣的东西 AutoMapper,主要将Model转换为DTO,DTO更注重数据,对领域对象进行合理封装,从而不会将领...

AutoMapper配置映射关系。AutoMapper 配置子对象的情况,配置对象里边还有对象的情况

如果字段名字不一样,可以这样配置映射关系 CreateMap&lt;LandInfo, LandInfoDto&gt;().ForMember(dest =&gt; dest._remar...

如果对象为空,如何将 AutoMapper 9 配置为忽略对象属性,但如果不为空则映射

问题描述我尝试了很多,但找不到我真正要找的东西.这是我的情况:我有一个带有导航属性和视图模型的 EF-Core 实体: public ...

net 项目中使用AutoMapper

目录 net 项目中使用automapper 自动注入方式 项目中引入包 注入服务 写automapper 配置文件 具体使用automapper...
这一世以无限游戏为使命!
排名
6
文章
6
粉丝
16
评论
8
docker中Sware集群与service
尘叶心繁 : 想学呀!我教你呀
一个bug让程序员走上法庭 索赔金额达400亿日元
叼着奶瓶逛酒吧 : 所以说做程序员也要懂点法律知识
.net core 塑形资源
剑轩 : 收藏收藏
映射AutoMapper
剑轩 : 好是好,这个对效率影响大不大哇,效率高不高
ASP.NET Core 服务注册生命周期
剑轩 : http://www.tnblog.net/aojiancc2/article/details/167
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术