C# 自动映射:获取属性列表
我需要从嵌套对象获取属性列表 这是我代码的一部分:C# 自动映射:获取属性列表,c#,automapper,C#,Automapper,我需要从嵌套对象获取属性列表 这是我代码的一部分: [Table("Articles")] class Article { public Article() { ListComplex = new List<ArticlesComplex>(); } public long Id { get; set; } public string Code { get; set; } public string Nam
[Table("Articles")]
class Article
{
public Article()
{
ListComplex = new List<ArticlesComplex>();
}
public long Id { get; set; }
public string Code { get; set; }
public string Name { get; set; }
public virtual ICollection<ArticlesComplex> ListComplex { get; set; }
}
[Table("ArticlesComplex")]
class ArticlesComplex
{
public long ArticleId { get; set; }
public virtual Article Article { get; set; }
public long ComplexId { get; set; }
public virtual Article Complex { get; set; }
}
//***********************
// DTO
//***********************
public class ArticleDTO
{
public ArticleDTO()
{
ListComplex = new List<long>();
ListComplexCodes = new List<string>();
}
public long Id { get; set; }
public string Code { get; set; }
public string Name { get; set; }
public IEnumerable<long> ListComplex { get; set; }
public IEnumerable<string> ListComplexCodes { get; set; }
}
创建映射:
mapper.CreateMap<Article, ArticleDTO>().ForMember(m => m.ListComplex, m => m.MapFrom(y => y.ListComplex.Select(x => x.Complex.Id).ToList()))
.ForMember(m => m.ListComplexCodes, m => m.MapFrom(y => y.ListComplex.Select(x => x.Complex.Codigo).ToList()))
mapper.CreateMap().ForMember(m=>m.ListComplex,m=>m.MapFrom(y=>y.ListComplex.Select(x=>x.Complex.Id).ToList())
.ForMember(m=>m.ListComplexCodes,m=>m.MapFrom(y=>y.ListComplex.Select(x=>x.Complex.Codigo.ToList())
最后,我得到的结果是:
var dbWhere = DbContext.Articles.Where(x => x.Codigo == "COD_ART_07");
var list = await dbWhere.ProjectTo<ArticleDTO>(null, "ListComplex").ToListAsync();
// list.ListComplex (2) -> 5,6
// list.ListComplexCodes (0) ???
var dbWhere=DbContext.Articles.Where(x=>x.Codigo==“COD_ART_07”);
var list=await dbWhere.ProjectTo(null,“ListComplex”).toListSync();
//list.ListComplex(2)->5,6
//list.ListComplexCodes(0)???
我需要在“ListComplexCodes”字段中获取属性“Code”,在我的例子中是“COD_ART_05”,“COD_ART_06”
有人能帮我吗
谢谢。Automapper与此无关
var dbWhere = DbContext.Articles.Where(x => x.Codigo == "COD_ART_07");
var list = await dbWhere.ProjectTo<ArticleDTO>(null, "ListComplex").ToListAsync();
// list.ListComplex (2) -> 5,6
// list.ListComplexCodes (0) ???