安装包:Mapster
1.注册
MyRegister.Scan(); // 全局配置
//builder.Services.AddMapster(); // 需要安装Mapster.DependencyInjection包
builder.Services.AddScoped<IMapper,Mapper>();
2.配置(可不进行配置直接使用也行)
cs
public class MyRegister : IRegister
{
public static void Scan()
{
TypeAdapterConfig.GlobalSettings.Scan(typeof(MyRegister).Assembly);
}
public void Register(TypeAdapterConfig config)
{
config.ForType<MenuListDto, MenuList>()
.Map(dest => dest.Name,src=>src.Describe) // 将Describe映射给Name
.IgnoreNullValues(true)//忽略空值映射
.Ignore(t=> t.Id); // 忽略ID
config.ForType<User, UserDto>().Ignore(t => t.Id);
}
}
3.使用
cs
public class DemoServicer:IDemoServicer
{
private ISqlSugarClient _sqlSugarClient;
private IMapper _mapper;
/// <summary>
///
/// </summary>
/// <param name="sqlSugarClient"></param>
/// <param name="mapper"></param>
public MenuListServicer(IMapper mapper,ISqlSugarClient sqlSugarClient)
{
_mapper = mapper;
_sqlSugarClient = sqlSugarClient;
}
public MenuListDto[] GetList()
{
var arr = _sqlSugarClient.Queryable<MenuList>().ToArray();
return arr.Adapt<MenuListDto[]>();
//或者直接使用
return _mapper.Map<MenuListDto[]>(arr);
}
}
属性页可以添加特性进行忽略[AdaptIgnore]