using System; using System.Collections.Generic; using System.Linq; using System.Web; using AutoMapper; namespace MvcAutoMapper.AutoMapper { public class Configuration { public static void Configure() { Mapper.Initialize(cfg => { cfg.AddProfile<UserProfile>(); }); } } }
using System; using System.Collections.Generic; using System.Linq; using System.Web; using AutoMapper; namespace MvcAutoMapper.AutoMapper.Profiles { public class UserProfile:Profile { protected override void Configure() { CreateMap<Models.User, Models.UserDto>(); } } }
using System; using System.Collections.Generic; using System.Linq; using System.Web; using AutoMapper; namespace MyMvc.AutoMapper { public static class AutoMapperForMvc { public static void Register() { Mapper.Initialize(x => { x.AddProfile<UserProfile>(); }); //在程序启动时对所有的配置进行严格验证 Mapper.AssertConfigurationIsValid(); } } }
using System; using System.Collections.Generic; using System.Linq; using System.Web; using AutoMapper; namespace MyMvc.AutoMapper { public class UserProfile:Profile { public UserProfile() { base.CreateMap<Models.User, Models.UserView>() //映射前 .BeforeMap((s, t) => { s.Age += 10; }) //映射后 .AfterMap((s, t) => { t.Age += 10; }) //条件判断 //年龄不大于10 不映射年龄这个属性的值,那值就是默认的0,但是映射后+10,所以就是10 .ForMember(t=>t.Age,o=>o.Condition(s=>s.Age>30)) //空值 .ForMember(t=>t.Name, o=>o.NullSubstitute("无名氏")) .ForMember(x=>x.time,x=>x.MapFrom(s=>s.add_time)) //反向映射 .ReverseMap(); } } }