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 UsersDto17 {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-dd15 .ForMember(d => d.Birthday, o => o.MapFrom(s => s.Birthday.ToString("yyyy-MM-dd")))16 //注册时间 时间格式映射 yyyy-MM-dd HH:mm:ss17 .ForMember(d => d.Regtime, o => o.MapFrom(s => s.regtime.ToString("yyyy-MM-dd HH:mm:ss")))18 //省份 10019 .ForMember(d => d.Province, o => o.MapFrom(s => s.ProvinceId == 100 ? "河北省" : "北京市"))20 //城市 100121 .ForMember(d => d.City, o => o.MapFrom(s => s.CityId == 1001 ? "石家庄市" : "北京市"))22 //地区 1001123 .ForMember(d => d.Area, o => o.MapFrom(s => s.AreaId == 10011 ? "正定区" : "北京市"));24 }25 }26 27 28 /// <summary>29 /// 配置AutoMapper映射类30 /// </summary>31 public class AutoMapperConfig32 {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,最后测试效果
原文转载:http://www.shaoqun.com/a/725758.html
走秀网:https://www.ikjzd.com/w/2427
asinseed:https://www.ikjzd.com/w/533
1,安装AutoMapper包2,准备实体类和映射类1publicclassUsers2{3publicintUserid{get;set;}4publicstringUsername{get;set;}5publicstringPassword{get;set;}6publicstringTrueName{get;set;}7publicintSex{get;set;}8publicstring
败欧洲:https://www.ikjzd.com/w/1555
aca:https://www.ikjzd.com/w/1371
zen-cart:https://www.ikjzd.com/w/1282
口述:为婚房我和男友互扇耳光 该分手吗:http://lady.shaoqun.com/m/a/13678.html
亚马逊卖家九月如何找真实有效的测评人?:https://www.ikjzd.com/home/128916
旺季广告烧到爆表 卖家ACOS直飚500%!:https://www.ikjzd.com/home/134875
No comments:
Post a Comment