Есть модель Категорий товаров.
public class Categories
{
public int Id { get; set; }
public string Name { get; set; }
public int? Parent_id { get; set; }
public ICollection<Products> Produkt { get; set; }
}
Где Parent_id это Id выше стоящей категории. В категории максимум два вложения. Основная -> Зависимая 1 -> Зависимая 2
Товар может находится как в Зависимой 1 так и в Зависимой 2. Как отобрать Все товары исходя из основной?
Пробовал вот так (Parent_id == 3 - это отбор по Id основной категории) :
public IActionResult Index()
{
var Cetegories1 = from c in _context.Categories.Where(c => c.Parent_id == 3)
from p in _context.Categories
where c.Id == p.Parent_id
select p;
var Cetegories2 = from c in _context.Categories.Where(c => c.Parent_id == 3)
select c;
var products1 = from p in _context.Products
from c in Cetegories1
where p.CategoriesId == c.CategoriesId
select p;
var products2 = from p in _context.Products
from c in Cetegories2
where p.CategoriesId == c.CategoriesId
select p;
var products = products1.Concat(products2);
return View(products);
}
В этом случае не получается присоединить никакие дочерние элементы.
Если идти от Категорий
public IActionResult Index()
{
var Cetegories1 = from c in _context.Categories.Where(c => c.Parent_id == 3)
from p in _context.Categories
where c.Id == p.Parent_id
select p;
var Cetegories2 = from c in _context.Categories.Where(c => c.Parent_id == 3)
select c;
var Cetegories = Cetegories1.Concat(Cetegories2);
var products = from p in _context.Products
from c in Cetegories
where p.CategoriesId == c.CategoriesId
select p;
return View(products);
}
То появляется ошибка Microsoft.EntityFrameworkCore.Storage.Value Buffer
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости