Mam zapytanie SQL:Konwersja zapytanie SQL do LINQ w C#
SELECT
node.GroupName
, depth = COUNT(parent.GroupName) - 1
FROM CompanyGroup node
JOIN CompanyGroup parent ON node.LeftID BETWEEN parent.LeftID AND parent.RightID
GROUP BY node.GroupName, node.LeftID
ORDER BY node.LeftID;
próbowałam przekształcenie go do siebie LINQ, ale jestem zaznajomiony z językiem, po pewnym badań Próbowałam używając Linqer, ale nie konwertuje funkcji "MIĘDZY" lub "COUNT".
Najbliżej stałam tak daleko jest:
var groupModel =
from node in db.CompanyGroups
join parent in db.CompanyGroups.Where(node.LeftID > parent.LeftID && node.LeftID < parent.RightID)
orderby node.LeftID
select node.GroupName;
który nie działa i nie zwróci „głębokość” nawet gdyby tak się stało, prosimy o pomoc!
Edycja:
Zapytanie jest używana do zwrócenia głębokość węzłów zagnieżdżonej zestawu w kolejności tak, aby utworzyć odwzorowanie hierarchii; Obserwuję ten tutorial: http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/ w rozdziale „Znajdowanie głębokości węzły”
należy użyć '> =' i '<=' w LINQ dołączyć ponieważ 'BETWEEN' jest włącznie –
Notatka boczna, ale powinienem wziąć pod uwagę strukturę twojej tabeli – LukeHennerley
Dlaczego musisz znać głębokość z góry? Nie możesz zwrócić struktury zagnieżdżonej i pozwolić kodowi rysującemu interfejs zachować licznik głębokości? – MrFox