簡體   English   中英

使用 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所有對象都具有除Id之外的所有屬性的值,所有對象的Id為 0。 客戶包含Id值,但映射后Id變為 0。任何人都可以幫我解決這個問題嗎?

提前致謝。

您是否嘗試過更改此代碼

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

用這個改變

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

並找到 automapper 配置文件。 並改變這個

 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;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM