繁体   English   中英

自动映射器映射到字符串

[英]Automapper-Map to a string

我尝试使用以下CreateMap()创建到字符串的映射:

Mapper.CreateMap<MyComplexType, string>()
    .ConvertUsing(c => c.Name);

但是,当我尝试使用此映射时,出现以下错误:

类型'System.String'没有默认的构造函数

这是有道理的,但我一直在阅读,并且应该可以正常工作。 我还有其他事要做吗?

以我为例

.ProjectTo<>()

直接从DBContext集合(EF 6)投影到我的DTO,例如

db.Configuration.LazyLoadingEnabled = false;
prospects = db.Prospects.Where([my where lambda]).ProjectTo<ProspectDTO>().ToList();

具有来自MM相关表的IEnumerable<string>属性的目标,即

public class ProspectDTO 
{
   public IEnumerable<string> Brands { get; set; }
}

我的解决方案映射如下

AutoMapper.Mapper.CreateMap<Prospect, ProspectDTO>().ForMember(dest => dest.Brands, opts => opts.MapFrom(src => src.Brands.Select(b => b.Name)));

注意:我正在使用像这样的ProjectTo <>来避免常见的延迟加载选择n + 1问题,并确保对数据库运行适当的(快速)sql,并且我拥有所需的所有相关表数据。 优秀的。

谢谢吉米·博加德,你是摇滚明星!

暂无
暂无

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

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