安裝包:Mapster
1.注冊
MyRegister.Scan(); // 全局配置
//builder.Services.AddMapster(); // 需要安裝Mapster.DependencyInjection包
builder.Services.AddScoped<IMapper,Mapper>();
2.配置(可不進行配置直接使用也行)
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); // 忽略IDconfig.ForType<User, UserDto>().Ignore(t => t.Id);}
}
3.使用
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]