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();
}
}
}