C# 自动映射嵌套映射3级

C# 自动映射嵌套映射3级,c#,entity-framework-6,automapper,C#,Entity Framework 6,Automapper,我有以下问题,我需要从salesheader访问sales line的项目,当我尝试按实体访问时,通过延迟加载可以正常工作,但我尝试使用Automapper 6进行映射 无法从销售标题访问项目 谢谢 public class SalesHeader { public int DocumentNo { get; set; } public virtual ICollection<PostedSalesLine> SalesLines { get; set; } } pu

我有以下问题,我需要从salesheader访问sales line的项目,当我尝试按实体访问时,通过延迟加载可以正常工作,但我尝试使用Automapper 6进行映射 无法从销售标题访问项目

谢谢

public class SalesHeader
{
    public int DocumentNo { get; set; }
    public virtual ICollection<PostedSalesLine> SalesLines { get; set; }
}
public class SalesLine
{
    public int LineNo { get; set; }
    public int DocumentNo { get; set; }
    public int ItemId { get; set; }
    public virtual Item Item { get; set; }
    public int Quantity { get; set; }
    public decimal Amount { get; set; }
}
public class Item
{
    public int Id { get; set; }
    public string Name { get; set; }
    public decimal UnitCost { get; set; }
    public decimal UnitPrice { get; set; }
}
                var result = unitOfWork.SalesHeader.GetById(documenNo);
                Mapper.Initialize(cfg => cfg.CreateMap<SalesHeader, SalesHeaderDTO>()

                return Mapper.Map<SalesHeaderDTO>(result);
公共类SalesHeader
{
public int DocumentNo{get;set;}
公共虚拟ICollection销售线{get;set;}
}
公共类销售线
{
public int LineNo{get;set;}
public int DocumentNo{get;set;}
公共int ItemId{get;set;}
公共虚拟项项{get;set;}
公共整数数量{get;set;}
公共十进制数{get;set;}
}
公共类项目
{
公共int Id{get;set;}
公共字符串名称{get;set;}
公共十进制单位成本{get;set;}
公共十进制单价{get;set;}
}
var result=unitOfWork.SalesHeader.GetById(documenNo);
初始化(cfg=>cfg.CreateMap())
返回Mapper.Map(结果);
完成! 不要使用延迟加载,它会造成代理混乱

        public IEnumerable<SalesHeader> GetAllFullDocuments()
    {
        return SalesContext.SalesHeader.Include(sh => sh.SalesLines.Select(i => i.Item))
                                       .Include(sh => sh.SellToCustomer)
                                       .Include(sh => sh.BillToCustomer)
                                       .ToList();
    }
public IEnumerable GetAllFullDocuments()
{
返回SalesContext.SalesHeader.Include(sh=>sh.SalesLines.Select(i=>i.Item))
.包括(sh=>sh.SellToCustomer)
.包括(sh=>sh.BillToCustomer)
.ToList();
}