我需要得到一個嵌套集合的節點,通過它深入linq。Linq無限嵌套查詢
這是嵌套類:
public class Group
{
public int Id { get; set; }
public string Description { get; set; }
public int ParentId { get; set; }
public List<Group> Groups { get; set; }
}
本類的每個實例可具有組方法內的多個實例等。每個實例通過ParentId屬性鏈接。
我需要,有一個Group類的實例,檢索他的父親。我試着用這樣的:
var parent = _repositoryGroups
.Where(g => g.Id == [my Group instance].ParentId)
.SelectMany(g => g.Groups)
.FirstOrDefault()
我不知道爲什麼,但並不總是它找到父親實例,並開始從第二個層面看(但是這不是一個真正的問題)。
通過這個嵌套類的所有深處找到元素的最佳方法是什麼?
感謝
我認爲你在濫用SelectMany。如果你刪除該行,它應該工作 – Schiavini
我同意@Schiavini。如果沒有'SelectMany',查詢會返回具有所需id的第一個組(返回父親)。從該父項中選擇所有組,然後採用第一個組看起來會顯示返回父項的第一個子項,而不是父項。 – SimpleVar
沒有'SelectMany'就無法工作。它只檢索第一級別下的羣組... –