Как создать иерархию категорий?
Идея в том, что есть категория у неё есть подкатегория и у этой подкатегории есть ещё категория. Использую EF Core. Сделал следующий объект
public class Category : BaseEntity
{
private readonly List<Category> _subcategories = new();
private Category()
{
}
public Category(string name)
{
if (string.IsNullOrWhiteSpace(name))
throw new ArgumentNullException(nameof(name));
Name = name;
}
public Category(string name, Category parentCategory) : this(name)
{
ParentCategory = parentCategory ??
throw new ArgumentNullException(nameof(parentCategory));
}
public string Name { get; private set; }
public Category ParentCategory { get; private set; }
public IReadOnlyCollection<Category> Subcategories => _subcategories.AsReadOnly();
protected internal void AddSubcategory(Category subcategory)
{
if (subcategory == null)
throw new ArgumentNullException(nameof(subcategory));
_subcategories.Add(subcategory);
}
protected internal void UpdateName(string name)
{
if (string.IsNullOrWhiteSpace(name))
throw new ArgumentNullException(nameof(name));
Name = name;
}
protected internal void UpdateParentCategory(Category parentCategory)
{
ParentCategory = parentCategory ??
throw new ArgumentNullException(nameof(parentCategory));
}
}
После создания миграции я получаю следующею таблицу
И когда я получаю категорию с Id 8. В Subcategories я должен видеть категории под Id 9,10, но там только 9
