c# – 使用Automapper将集合的属性映射到基元数组
发布时间:2020-12-15 04:20:17 所属栏目:百科 来源:网络整理
导读:给定以下类: class Parent{ string Name { get; set; } ListChild children { get; set; }}class Child{ short ChildId { get; set; } string Name { get; set; }}class ParentViewModel{ string Name { get; set; } short[] ChildIds { get; set; }} 我打
给定以下类:
class Parent { string Name { get; set; } List<Child> children { get; set; } } class Child { short ChildId { get; set; } string Name { get; set; } } class ParentViewModel { string Name { get; set; } short[] ChildIds { get; set; } } 我打电话的时候 Mapper.Map<Parent,ParentViewModel>(vm); 是否有可能让AutoMapper将Child.ChildId列表转换为ParentViewModel.ChildIds? 我尝试过这样的事情: Mapper.CreateMap<Child,short>() .FromMember(dest => dest,opt => opt.MapFrom(src => src.ChildId)); Mapper.CreateMap<Parent,ParentViewModel>() .FromMember(dest => dest.ChildIds,opt => opt.MapFrom(src => new[] {src.children})); 但我得到一个错误,说它不知道如何将Child对象列表转换为int16.有什么建议? 解决方法
使用LINQ查询只获取ChildIds:
.ForMember(d => d.ChildIds,o => o.MapFrom(s => s.Children.Select(c => c.ChildId).ToArray())); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |