在做一个前后端项目的时候需要去考虑后端与前端数据如何进行交互.我是采用的中间层,利用DAO层与前端进行交互,前端提交的数据通过DAO层进行接收,然后通过AutoMapper映射到Entity数据,同理后端提交数据给前端的时候通过AutoMapper实现Entity数据映射到DAO层数据中,再展现给前端,具体如下:
1. 在数据层中下载AutoMapper包
2. 创建映射对象
/// <summary>
/// 创建映射对象
/// </summary>
/// <returns></returns>
public static IMapper CreateMapper()
{
//配置映射规则
var configuration = new MapperConfiguration(cfg =>
{
// 将映射配置添加到IMapper对象中
cfg.AddProfile<MappingProfile>();
});
//创建映射对象
var mapper = configuration.CreateMapper();
return mapper;
}
3. 配置映射关系
/// <summary>
/// 配置映射关系
/// </summary>
public class MappingProfile : Profile
{
public MappingProfile()
{
// 表示将User数据映射到UserDto
CreateMap<User, UserDto>();
}
4. 注入AutoMapper服务
public static class AutoMapperExtension
{
public static void AddClubAutoMapper(this WebApplicationBuilder builder)
{
AutoMapper.IConfigurationProvider config = new MapperConfiguration(cfg =>
{
cfg.AddProfile<MappingProfile>();
});
builder.Services.AddSingleton(config);
builder.Services.AddScoped<IMapper, Mapper>();
}
}
5. 在program.cs中注入服务
builder.AddClubAutoMapper();
自此我们并可以通过依赖注入的方式使用AutoMapper了