C# 使用automapper填充列表属性
我有一个EF对象(分析),我正在使用automapper将其映射到数据传输对象(分析)。我能够通过使用获取填充的AssociationValue、AssociationCode、AssociationName和AssociationComments属性C# 使用automapper填充列表属性,c#,entity-framework,automapper,C#,Entity Framework,Automapper,我有一个EF对象(分析),我正在使用automapper将其映射到数据传输对象(分析)。我能够通过使用获取填充的AssociationValue、AssociationCode、AssociationName和AssociationComments属性 Mapper.Map<IEnumerable<Assay>, IEnumerable<AssayDTO>>(assays); Mapper.Map(分析); 如果此值是基于分析ID的单独查询,如何使用aut
Mapper.Map<IEnumerable<Assay>, IEnumerable<AssayDTO>>(assays);
Mapper.Map(分析);
如果此值是基于分析ID的单独查询,如何使用automapper填充分析数据到基因属性
我希望AssayDTO Genes属性包含每个分析的基因列表
public partial class Assay
{
public int AssayID { get; set; }
public string AssayCode { get; set; }
public string AssayName { get; set; }
public string AssayComments { get; set; }
public long ModifID { get; set; }
public byte[] LAST_UPDATED_TIMESTAMP { get; set; }
}
public class AssayDTO
{
public string AssayValue { get; set; }
public string AssayCode { get; set; }
public string AssayName { get; set; }
public string AssayComments { get; set; }
public IEnumerable<string> Genes { get; set; }
}
IEnumerable<AssayDTO> dto = null;
var assays = _assayRepository.GetAssays();
Mapper.CreateMap<Assay, AssayDTO>()
dto = Mapper.Map<IEnumerable<Assay>, IEnumerable<AssayDTO>>(assays);
公共部分类分析
{
公共ID{get;set;}
公共字符串代码{get;set;}
公共字符串名称{get;set;}
公共字符串{get;set;}
公共长ModifID{get;set;}
公共字节[]上次更新的时间戳{get;set;}
}
公共类分析
{
公共字符串值{get;set;}
公共字符串代码{get;set;}
公共字符串名称{get;set;}
公共字符串{get;set;}
公共IEnumerable基因{get;set;}
}
IEnumerable dto=null;
var assays=_assayRepository.GetAssays();
Mapper.CreateMap()
dto=Mapper.Map(分析);
您可以这样配置映射:
Mapper.CreateMap<Assay,AssayDto>()
.ForMember(dto =>
dto.Genes,
m => m.MapFrom(a => GenesList // your separate list of genes
.Where(g => g.AssayID == a.AssayID)
.Select(g => g.Name)));
Mapper.CreateMap()
.FormMember(dto=>
dto.基因,
m=>m.MapFrom(a=>GenesList//
.其中(g=>g.AssayID==a.AssayID)
.选择(g=>g.Name));
顺便说一句,就我个人而言,我总是喜欢这种形式的陈述:
dtos = assays.Select(a => Mapper.Map<AssayDTO>(a));
dtos=analysis.Select(a=>Mapper.Map(a));
您可以将其缩短为分析。选择(Mapper.Map)