У меня есть таблица Category, и у нее есть Parent Category, я пытаюсь перебрать все категории и получить родительские категории с помощью Inverse Parent, но некоторые из них возвращаются без обратных родителей по неизвестной причине.
Categories.cs
public partial class Categories
{
public Categories()
{
InverseParent = new HashSet<Categories>();
}
public int Id { get; set; }
public int? ParentId { get; set; }
public DateTime CreateDate { get; set; }
public bool? Status { get; set; }
public virtual Categories Parent { get; set; }
public virtual ICollection<Categories> InverseParent { get; set; }
}
Вот как я пытаюсь выполнить их итерацию для создания элементов списка выбора:
var parentCategories = await _context.Categories.
Include(x => x.Parent).
Where(x => x.Status == true).
Where(x => x.Parent != null).
Select(x => x.Parent).
Distinct().
ToListAsync();
foreach (var parent in parentCategories)
{
SelectListGroup group = new SelectListGroup() { Name = parent.Id.ToString() };
foreach (var category in parent.InverseParent)
{
categories.Add(new SelectListItem { Text = category.Id.ToString(), Value = category.Id.ToString(), Group = group });
}
}
Так что проблема в том, что некоторые из моих родительских категорий возвращают все своидетские категории, а некоторые нет, и я не знаю, почему.