Мой первый пост на Stackoverflow.Поэтому заранее прошу прощения, если я чего-то не понимаю:)
У меня есть абстрактный класс с именем ElementEntity.Внутри этого класса у меня есть два отношения ко многим, ChildRelations и ParentRelations.
Мне нужен список с идентификаторами всех детей, внуков и т. Д., Образующих определенную ElementEntity.
Мы не знаем, насколько глубоко это дерево выглядит так: Context.Hospitals (). Include (b => b.ChildRelations) .ThenInclude (c => c.child) .ThenInclude и т.это не вариант.(Больница является производной ElementEntity)
Какой будет лучший (самый недорогой) подход?
Как указание, у определенного элемента могут быть сотни тысяч объектов потомства.
public abstract class ElementEntity
{
public long Id {get; set;}
public virtual ICollection<BaseGroupParentChildRelation> ParentRelations { get; } = new List<BaseGroupParentChildRelation>();
public virtual ICollection<BaseGroupParentChildRelation> ChildRelations { get; } = new List<BaseGroupParentChildRelation>();
}
public class BaseGroupParentChildRelation
{
public long ParentId { get; set; }
public virtual ElementEntity Parent { get; set; }
public long ChildId { get; set; }
public virtual ElementEntity Child { get; set; }
}
Возможное исправление:
await projectDbContext.Set<BaseGroupParentChildRelation>().ToListAsync();
var Hotels = await projectDbContext.Hotels.Include(b =>
b.ChildRelations).ThenInclude(b => b.Child).ToListAsync();
Отели теперь включаютдети, внуки, правнуки и т. д. и т. д.