我有一个 SQL 查询:
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;
我自己尝试将其转换为 LINQ,但我对该语言不熟悉,经过一些研究后,我尝试使用 Linqer,但它不会转换函数“BETWEEN”或“COUNT”。
到目前为止,我得到的最接近的是:
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;
这不起作用,即使这样做也不会返回“深度”,请帮忙!
编辑:
该查询用于按顺序返回嵌套集中节点的深度,以便我可以创建层次结构的表示;我正在关注本教程:http ://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/在“查找节点的深度”一章中