1,安装AutoMapper包2,准备实体类和映射类 1 public class Users2 {3 public int Userid { get; set; }4 public string Username { get; set; }5 public string Password { get; s...
1,安装AutoMapper包

2,准备实体类和映射类
1 public class Users
2 {
3 public int Userid { get; set; }
4 public string Username { get; set; }
5 public string Password { get; set; }
6 public string TrueName { get; set; }
7 public int Sex { get; set; }
8 public string Email { get; set; }
9 public DateTime Birthday { get; set; }
10 public decimal bankprice { get; set; }
11
12 .......
13 }
14
15
16 public class UsersDto
17 {
18 public int Userid { get; set; }
19 public string UserName { get; set; }
20 public string Sex { get; set; }
21 public string Birthday { get; set; }
22 public string Status { get; set; }
23 public string Regtime { get; set; }
24 public string Province { get; set; }
25 public string City { get; set; }
26 public string Area { get; set; }
27 }
3,配置映射类,分别创建类:CustomProfile、AutoMapperConfig
1 /// <summary>
2 /// AutoMapper映射类 实体类--->Dto扩展类
3 /// </summary>
4 public class CustomProfile : Profile
5 {
6 public CustomProfile()
7 {
8 CreateMap<Users, UsersDto>()
9 .ForMember(d => d.UserName, o => o.MapFrom(s => s.Username))
10 //性别映射 0女 1男 2保密
11 .ForMember(d => d.Sex, o => o.MapFrom(s => s.Sex == 0 ? "女" : (s.Sex == 1 ? "男" : "保密")))
12 //状态映射 0停用 1启用
13 .ForMember(d => d.Status, o => o.MapFrom(s => s.status == 0 ? "停用" : "启用"))
14 //生日 时间格式映射 yyyy-MM-dd
15 .ForMember(d => d.Birthday, o => o.MapFrom(s => s.Birthday.ToString("yyyy-MM-dd")))
16 //注册时间 时间格式映射 yyyy-MM-dd HH:mm:ss
17 .ForMember(d => d.Regtime, o => o.MapFrom(s => s.regtime.ToString("yyyy-MM-dd HH:mm:ss")))
18 //省份 100
19 .ForMember(d => d.Province, o => o.MapFrom(s => s.ProvinceId == 100 ? "河北省" : "北京市"))
20 //城市 1001
21 .ForMember(d => d.City, o => o.MapFrom(s => s.CityId == 1001 ? "石家庄市" : "北京市"))
22 //地区 10011
23 .ForMember(d => d.Area, o => o.MapFrom(s => s.AreaId == 10011 ? "正定区" : "北京市"));
24 }
25 }
26
27
28 /// <summary>
29 /// 配置AutoMapper映射类
30 /// </summary>
31 public class AutoMapperConfig
32 {
33 public static MapperConfiguration RegisterMappings()
34 {
35 return new MapperConfiguration(option =>
36 {
37 option.AddProfile(new CustomProfile());
38 });
39 }
40 }
4,注册AutoMapper,注意下边红色部分
1 public void ConfigureServices(IServiceCollection services)
2 {
3 services.AddControllersWithViews();
4
5 //注册AddAutoMapper
6 services.AddAutoMapper(typeof(AutoMapperConfig));
7 AutoMapperConfig.RegisterMappings();
8
9 //注册接口
10 services.AddScoped<IUsersServices, UsersServices>();
11 }
5,在业务类中的构造函数中调用,使用 IMapper 进行调用。。。
1 public class UsersServices : IUsersServices
2 {
3 private readonly IMapper mapper;
4 public UsersServices(IMapper _mapper)
5 {
6 mapper = _mapper;
7 }
8 public List<UsersDto> GetUserList()
9 {
10 return mapper.Map<List<UsersDto>>(this.GetUserDataList()); //调用数据库访问层获取数据
11 }
。。。。。。。。。
6,在控制器中使用
1 public class UsersController : Controller
2 {
3 private readonly IUsersServices usersServices;
4
5 public UsersController(IUsersServices _usersServices)
6 {
7 usersServices = _usersServices;
8 }
9
10 public IActionResult Index()
11 {
12 var getmodel = usersServices.GetUserList(); //正常调用
13 return View(getmodel);
14 }
15 }
7,前端简单的用Html展示
1 <div class="eblist-div" id="listDiv">
2 <table id="list-table" class="datalist table table-bordered">
3 <thead class="bg-info">
4 <tr>
5 <th>序号</th>
6 <th>用户名称</th>
7 <th>性别</th>
8 <th>生日</th>
9 <th>状态</th>
10 <th>注册时间</th>
11 <th>所在省</th>
12 <th>所在市</th>
13 <th>所在地区</th>
14 </tr>
15 </thead>
16 <tbody>
17 @foreach (var item in Model)
18 {
19 <tr>
20 <td style="text-align: center;">@item.Userid</td>
21 <td style="text-align: center;">@item.UserName</td>
22 <td style="text-align: center;">@item.Sex</td>
23 <td style="text-align: center;">@item.Birthday</td>
24 <td style="text-align: center;">@item.Status</td>
25 <td style="text-align: center;">@item.Regtime</td>
26 <td style="text-align: center;">@item.Province</td>
27 <td style="text-align: center;">@item.City</td>
28 <td style="text-align: center;">@item.Area</td>
29 </tr>
30 }
31 </tbody>
32 </table>
33 </div>
8,最后测试效果

织梦狗教程
本文标题为:.Net Core 3.x Api开发笔记 -- 使用AutoMapper
基础教程推荐
猜你喜欢
- Unity 如何获取鼠标停留位置下的物体 2023-04-10
- Unity shader实现高斯模糊效果 2023-01-16
- C#通过标签软件Bartender的ZPL命令打印条码 2023-05-16
- C#获取指定目录下某种格式文件集并备份到指定文件夹 2023-05-30
- C# 解析XML和反序列化的示例 2023-04-14
- C#中的Linq to JSON操作详解 2023-06-08
- C#调用摄像头实现拍照功能的示例代码 2023-03-09
- C#中 Json 序列化去掉null值的方法 2022-11-18
- c# – USING块在网站与Windows窗体中的行为不同 2023-09-20
- 实例详解C#实现http不同方法的请求 2022-12-26
