2017-05-19 13 views
0

私は以下の問題があります。salesheaderのセールスラインの項目にアクセスする必要があります。エンティティによるアクセスは遅延ロードによってうまく動作しますが、Automapper 6でマップを試します。 へのアクセス権がありません販売ヘッダからの項目Automapperのネストマッピング3レベル

おかげ完了

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

答えて

0

! 遅延ロードを使用しないでください。プロキシの混乱を招きます。

 public IEnumerable<SalesHeader> GetAllFullDocuments() 
    { 
     return SalesContext.SalesHeader.Include(sh => sh.SalesLines.Select(i => i.Item)) 
             .Include(sh => sh.SellToCustomer) 
             .Include(sh => sh.BillToCustomer) 
             .ToList(); 
    } 
関連する問題