所以我在SQL-Server數據庫中有一個樹形結構。每個節點通過一個名爲prev的外鍵鏈接到它的父節點,並鏈接到另一個節點。Linq-to-sql:如何主動抓取鏈接的對象?
我希望每當我獲取一個節點時,也會獲取所有導向樹根的節點。目前我可以這樣做:
MyDataContext db = new MyDataContext();
IList<Node> nodes = new List<Node>();
Node node = db.Nodes.Single(x => x.id == 14);
nodes.Add(node);
while (node.prev != null)
{
node = db.Nodes.Single(x => x.id == node.prev);
nodes.Add(node);
}
但是這將需要大量的查詢等於我的樹的深度。我對linq-to-sql有點新,所以我不確定如何告訴它像這樣遞歸地提取。可能嗎?
這樣看來,我可以。不知道這是如何影響性能的,但直到我注意到它,這個效果很好。 – captncraig 2009-12-17 04:57:00