我想將我的 DTO 映射到一個(gè)實(shí)體。兩者之間的唯一區(qū)別是我的 dto 使用 List 作為集合類型,而實(shí)體使用 HashSet。如何配置 Automapper 在遇到 ICollection 時(shí)自動(dòng)映射到 HashSet?目前它只是用列表替換實(shí)體中的哈希集。示例類和映射:cfg.CreateMap<MachineDto, Machine>(MemberList.Source)cfg.CreateMap<Machine, MachineDto>(MemberList.Destination)public class Machine{ public Machine() { Segment = new HashSet<Segment>(); } public long ID { get; set; } public string Name { get; set; } public ICollection<Segment> Segment { get; set; }}public class Segment{ public Segment() { } public long ID { get; set; } public long MachineID { get; set; } public string Serial { get; set; }}public class MachineDto{ public MachineDto() { Segment = new List<SegmentDto>(); } public long ID { get; set; } public string Name { get; set; } public ICollection<SegmentDto> Segment { get; set; }}public class SegmentDto{ public SegmentDto() { } public long ID { get; set; } public string Serial { get; set; }}
1 回答

哈士奇WWW
TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超6個(gè)贊
在對(duì) AfterMap() 進(jìn)行大量擺弄之后,我找到了 UseDestinationValue 選項(xiàng),定義后它將重用現(xiàn)有的 HashSet 而不是用列表替換 ICollection。
cfg.CreateMap<MachineDto, Machine>(MemberList.Source) .ForMember(dest => dest.Segment, opt => opt.UseDestinationValue());
- 1 回答
- 0 關(guān)注
- 167 瀏覽
添加回答
舉報(bào)
0/150
提交
取消