2017-08-06 2 views
0

Ich muss ein Produktobjekt füllen, das zwei Sammlungen enthält. Der aktuelle Code funktioniert einwandfrei und füllt die Product.GraphicItems-Auflistung, aber ich muss auch die Product.InfoItems-Auflistung auffüllen, aber ich kann die Syntax für mehrere Auflistungen nicht herausfinden.Mehrere Sammlungen desselben Typs auffüllen

Aktuelle wählen:

var result = await this.Context.ShopCategorys 
    .Include(cat => cat.InfoItems) 
    .Include(cat => cat.Products) 
     .ThenInclude(prd => prd.GraphicItems) 
      .ThenInclude(itm => itm.Graphic) 
       .ThenInclude(gfx => gfx.Items) 
    .SingleAsync(cat => cat.Id.Equals(id)); 

Product.cs:

[Table("ShopProduct")] 
public class Product : BaseShop 
{ 
    public bool Active { get; set; } = true; 
    public int CategoryId { get; set; } 
    public int CultureId { get; set; } = -1; 
    public List<ProductInfo> InfoItems { get; set; } = new List<ProductInfo>(); 
    public List<ProductGraphic> GraphicItems { get; set; } = new List<ProductGraphic>(); 
} 

ProductInfo.cs:

[Table("ShopProductInfo")] 
public class ProductInfo : BaseShop, IInfoItem 
{ 
    public int? ProductId { get; set; } 
    public int CultureId { get; set; } 
    public Culture Culture { get; set; } 
    public string Name { get; set; } 
    public string Description { get; set; } 
} 

Antwort

0

Lösung:

var result = await this.Context.ShopCategorys 
    .Include(cat => cat.InfoItems) 
    .Include(cat => cat.Products) 
     .ThenInclude(prd => prd.InfoItems) 
    .Include(cat => cat.Products) 
     .ThenInclude(prd => prd.GraphicItems) 
      .ThenInclude(itm => itm.Graphic) 
       .ThenInclude(gfx => gfx.Items) 
    .SingleAsync(cat => cat.Id.Equals(id)); 
Verwandte Themen