Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 自动映射:获取属性列表_C#_Automapper - Fatal编程技术网

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) ???