kodu reprezentują niewielką skalę mojego problemu:własnym przedstawieniu z Entity Framework
public class Category
{
public Guid CategoryID { get; set; }
public string Name { get; set; }
public Guid? ParentID { get; set; }
public bool IsTop { get; set; }
public string Description { get; set; }
public virtual Category parentCategory { get; set; }
}
Kiedy użyć tej klasy w Entity Framework, generuje tylko jedną relację ojca i dziecka kategoriach.
Jak odróżnić semantykę właściwości i wygenerować dwie różne relacje w SQL Serverz po to, by uzyskać wszystkie kategorie dzieci z (potomkiem związku dziecka (rekursywna zstępująca)), a drugą dla uzyskania wszystkich kategorii rodzicielskich (rodzic rodzica (rekursywny bottom-up))? Coś takiego:
public virtual ICollection<Category> childCategories { get; set;}
public virtual ICollection<Category> parentCategories { get; set;}
Próbowałem go z modelBuilder, ale stamtąd mogę uzyskać tylko jeden poziom szczegółowości.
Czy masz wielu rodziców w danej kategorii lub tylko jednego? Ja również nie rozumiem, czego dokładnie chcesz. Czy chcesz utworzyć kolekcję 'parentCategories', która zawiera w jakiś sposób wszystkie kategorie w drzewie do katalogu głównego? Jeśli tak, nie byłoby to właściwością nawigacji, ale jest jakąś oceną lub wynikiem przejścia. EF ci nie pomoże, musisz napisać własny kod, aby stworzyć taką kolekcję. – Slauma
tak dokładnie. Chcę czegoś takiego, co daje mi wszystkie kategorie dzieci w dół drzewa i tak samo wszystkie kategorie rodziców do drzewa ... i tak, zdaję sobie sprawę, że EF nie pomoże w tej sytuacji, więc zrobiłem kilka pętli rekurencyjnych IEnmuerable i to działa dla mnie .. dziękuję za wsparcie –