我有以下方法,它使用LinqToSql獲取節點的所有父節點,但我不知道它對性能有多糟。在遞歸方法中使用LinqToSql非常糟糕的性能
從NodeTable:
public partial class Node
{
public List<Node> GetAllParents(IEnumerable<Node> records)
{
if (this.ParentID == 0)
{
// Reach the parent, so create the instance of the collection and brake recursive.
return new List<Node>();
}
var parent = records.First(p => p.ID == ParentID);
// create a collection from one item to concat it with the all parents.
IEnumerable<Node> lst = new Node[] { parent };
lst = lst.Concat(parent.GetAllParents(records));
return lst.ToList();
}
}
是好!或任何想法來改善它!
感謝。
這不是LINQ到對象嗎? – Ani 2011-01-27 10:13:39
@Ani:不,它位於由LinqToSQL創建的生成的部分類中。 – Homam 2011-01-27 10:14:54