使用AutoMapper映射DTO后,Id字段变为0

After mapping DTO using AutoMapper, the Id field becomes 0

请在下面找到代码:

public class CustomerDto
{  
    public int Id { get; set; }

    [Required]
    [StringLength(255)]
    public String Name { get; set; }
}

public class Customer
{  
    public int Id { get; set; }

    [Required]
    [StringLength(255)]
    public String Name { get; set; }
}

// ...

var customers = _context.Customers.ToList();
var cusDtos= Mapper.Map<List<Customer>,List<CustomerDto>>(customers);
return cusDtos;

cusDtos 中的所有对象对所有 属性 都有值,除了 IdId 对所有对象都是 0。 customers 包含 Id 的值,但映射后 Id 变为 0。 谁能帮我解决这个问题?

提前致谢。

您是否尝试过更改此代码

var cusDtos= Mapper.Map<List<Customer>,List<CustomerDto>>(customers);

以此改变

var cusDtos= Mapper.Map<List<CustomerDto>>(customers);

并找到自动映射器配置文件。并更改此

 CreateMap<Customer, CustomerDto>()
         .ForMember(m => m.Id, opt => opt.Ignore());

到这个

 CreateMap<Customer, CustomerDto>();

AutoMapper 配置:

CreateMap<Customer, CustomerDto>();

您的代码:

var customers = _context.Customers.ToList();
var cusDtos = customers.Select(x => AutoMapper.Mapper.Map<CustomerDto>(x)).ToList();
return cusDtos;