【发布时间】:2017-05-24 09:35:21
【问题描述】:
我的对象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,这是SerialNumbers 的ICollection。不过,我特别需要 SerialNumber 的 name 属性。我试过 src.SerialNumbers.Name 但 LINQ 不喜欢那样。
我尝试解决这个问题是在前一个块上方添加此代码:
c.CreateMap<SerialNumber, string>()
.ConvertUsing(src => src.Name);
然后我收到错误“无法将 lambda 表达式转换为类型'字符串',因为它不是委托类型”。
我对 AutoMapper 真的很陌生,感觉自己在黑暗中四处游荡。有人可以帮我解决这个问题吗?
【问题讨论】:
标签: c# asp.net-mvc linq lambda automapper