1. Instale el paquete nuget
AutoMapper.Extensions.Microsoft.DependencyInjection
de automapper 2. Cree las clases que deben asignarse y las clases convertidas.
public class studto
{
public int sn {
get; set; }
public string name {
get; set; }
public string sex {
get; set; }
public int age {
get; set; }
public string addre {
get; set; }
}
public class stu
{
public int sn {
get; set; }
public string name {
get; set; }
public string sex {
get; set; }
public int age {
get; set; }
public string address {
get; set; }
}
3. Para crear una clase de mapeo, debe heredar la clase de perfil en automatapper.
public class customProfile : Profile
{
public customProfile()
{
//如果dto类中的字段和实体类中的字段名相同就不需要配置字段,字段不相同,则要配置
CreateMap<stu, studto>()
//stu类映射到studto类上,studto类中的addre,与stu类中的address类对应
CreateMap<stu, studto>().ForMember(dest => dest.addre, opt => opt.MapFrom(src => src.address));
}
}
4. Inyecte el servicio automatapper en el programa.
builder.Services.AddAutoMapper(typeof(customProfile));
builder.Services.AddScoped<Iservice, service>();
5. Preparar los datos de la entidad.
public interface Iservice
{
List<stu> lsstu();
}
public class service : Iservice
{
public List<stu> lsstu()
{
List<stu> stus = new List<stu>();
stus.Add(new stu() {
sn = 1, name = "pzx", sex = "nan", age = 10, address = "pzx" });
stus.Add(new stu() {
sn = 2, name = "pzx", sex = "nan", age = 10, address = "pzx" });
stus.Add(new stu() {
sn = 3, name = "pzx", sex = "nan", age = 10, address = "pzx" });
return stus;
}
}
6. Llame al método de mapa de automatapper mediante la inyección del constructor en el control para completar la conversión de la entidad.
[HttpGet]
public IActionResult Index()
{
var ls = iservice.lsstu();
var dtols = _mapper.Map<List<stu>, List<studto>>(ls)
}
efecto de llamada