繁体   English   中英

尝试使用 AutoMapper 将对象的属性映射到字符串

[英]Trying to map a property of an object to a string with AutoMapper

我的对象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 ,它是SerialNumber的 ICollection。 不过,我特别需要SerialNumbername属性。 我试过做src.SerialNumbers.Name但 LINQ 不喜欢那样。

我试图解决这个问题是在上一个块上方添加此代码:

c.CreateMap<SerialNumber, string>()
    .ConvertUsing(src => src.Name);

但是后来我收到错误消息“无法将 lambda 表达式转换为类型‘字符串’,因为它不是委托类型”。

我对 AutoMapper 真的很陌生,感觉就像我在黑暗中四处游荡。 有人可以帮我解决这个问题吗?

只需将您的来源转换为列表。

src.SerialNumbers.ToList()

如果您需要嵌套属性,请先选择该属性。

src.SerialNumbers.Select(t=>t.Name).ToList()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM