
AutoMapper映射自定义类型
枚举
public class UserState : Enumeration
{
public static readonly UserState Start
= new UserState(0, "Start");
public static readonly UserState Stop
= new UserState(1, "Stop");
protected UserState() { }
protected UserState(int value, string displayName) : base(value, displayName) { }
}
实体
public class RoleRequestDTO
{
public string Id { get; set; }
public string rolename { get; set; }
public int status { get; set; }
}
public class RoleDOModel
{
public RoleDOModel() { }
public RoleDOModel(string _Id, string _rolename, RoleStatus _status)
{
this.Id = _Id;
this.rolename = _rolename;
this.status = _status;
}
public string Id { get; set; }
public string rolename { get; set; }
public RoleStatus status { get; set; }
}
public class RoleDOModel
{
public RoleDOModel() { }
public RoleDOModel(string _Id, string _rolename, RoleStatus _status)
{
this.Id = _Id;
this.rolename = _rolename;
this.status = _status;
}
public string Id { get; set; }
public string rolename { get; set; }
public RoleStatus status { get; set; }
}
测试
RoleStatus convertRoleStatus(int status)
{
var value = status == 0 ? RoleStatus.Start : RoleStatus.Stop;
return value;
}
var config = new MapperConfiguration(cfg =>
{
cfg.CreateMap<RoleRequestDTO, RoleDOModel>()
// 映射字段
.ForMember(x => x.status, opt => opt.MapFrom(src => convertRoleStatus(src.status)))
// 自定义转换
.ConstructUsing(src => new RoleDOModel(src.Id, src.rolename, convertRoleStatus(src.status)))
// 反向映射
.ReverseMap()
// 自定义转换
.ConvertUsing(src => new RoleRequestDTO() { Id = src.Id, status = src.status.Value ,rolename = src.rolename })
;
});
config.AssertConfigurationIsValid();
var mapper = new Mapper(config);
RoleRequestDTO role = new RoleRequestDTO
{
rolename = "hh",
status = 1
};
RoleDOModel rdo = mapper.Map<RoleRequestDTO, RoleDOModel>(role);
RoleRequestDTO dto = mapper.Map<RoleDOModel, RoleRequestDTO>(rdo);
欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739
评价
排名
6
文章
6
粉丝
16
评论
8
docker中Sware集群与service
尘叶心繁 : 想学呀!我教你呀
一个bug让程序员走上法庭 索赔金额达400亿日元
叼着奶瓶逛酒吧 : 所以说做程序员也要懂点法律知识
.net core 塑形资源
剑轩 : 收藏收藏
映射AutoMapper
剑轩 :
好是好,这个对效率影响大不大哇,效率高不高
一个bug让程序员走上法庭 索赔金额达400亿日元
剑轩 : 有点可怕
ASP.NET Core 服务注册生命周期
剑轩 :
http://www.tnblog.net/aojiancc2/article/details/167
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:
50010702506256


欢迎加群交流技术