Stein The Ruler Ответов: 1

Заполнение нескольких коллекций на одном объекте


Мне нужно заполнить объект продукта, который содержит две коллекции.
Текущий код отлично работает и заполняет продукт.Коллекция GraphicItems, но мне также нужно заполнить продукт.Коллекция InfoItems, но я не могу понять синтаксис для нескольких коллекций.

Текущий выбор:

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


Что я уже пробовал:

Различный.Включать и .Затем включите вариации

1 Ответов

Рейтинг:
2

Stein The Ruler

Решение:

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