我的对象Box
具有属性SerialNumbers
,它是<SerialNumber>
个对象的列表(或ICollection)。我需要将每个SerialNumber
.Name
属性映射到我BoxedElectrodesRowModel
中字符串列表中的字符串。
这是我的代码:
c.CreateMap<Box, BoxedElectrodesRowModel>()
.ForMember(dest => dest.BoxId, opts => opts.MapFrom(src => src.BoxID))
.ForMember(dest => dest.SerialNumbers, opts => opts.MapFrom(src => src.SerialNumbers))
.ForMember(dest => dest.DateCreated, opts => opts.MapFrom(src => src.DateCreated));
如果你在第三行注意到,我试图将dest.SerialNumbers
(模型中的字符串列表)转换为src.SerialNumbers
,这是{{1}的ICollection }秒。不过,我特别需要SerialNumber
的名称属性。我试过SerialNumber
,但LINQ并不喜欢这样。
我尝试解决此问题的方法是将此代码添加到上一个块之上:
src.SerialNumbers.Name
然后我得到了错误&#34;无法将lambda表达式转换为&#39; string&#39;因为它不是代表类型&#34;。
我对AutoMapper真的很陌生,觉得我在黑暗中徘徊。有人可以帮我解决这个问题吗?
答案 0 :(得分:1)
只需将您的来源转换为列表。
src.SerialNumbers.ToList()
如果您需要嵌套属性,请先选择该属性。
src.SerialNumbers.Select(t=>t.Name).ToList()