[英]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.