다음 순서로 결과를 그룹화하려고합니다.linq를 사용하여 중첩 그룹을 수행하는 방법은 무엇입니까?
나는 학교에 속하는 팀에 속하는 항목를 원한다. 내 항목 모델은 FK를 통해 사용자에게 연결됩니다. 내 항목 모델이 FK 팀으로 연결되었습니다. 팀이 m2m 단위로 사용자와 연결되었습니다. 사용자가 FK로 학교에 연결되었습니다.
나의 현재 쿼리는 다음과 같습니다
var y =
(from en in _db.Entries
where en.User.School_Id == schoolId
group en by en.Team_Id into te
select new
{
Team = te.Key,
Entries = te
}).ToList();
이 완벽하게 반환 팀과 팀 아래, 각각의 항목.
Teams
|
-Team A
--|
Entries
|
-Entry 1
-Entry 2
어떻게하면 학교 그룹 내에서 모두 중첩 할 수 있습니까? (나는 한 학교 ID를 지정하고있어 데모에 있지만 실제로에 맞게 학교 ID의 목록이 될 것입니다.)
-Schools
|
-School A
-|
-Teams
-Team A
|
-Entries
|-Entry 1
|-Entry 2
내가있는 gridview에 직접 결합하고 싶습니다. 이것은 잘 작동하지만 추가 그룹화를 통해 나는이 마크에 어떤 영향을 미치는지 조금 확실하지 않습니다.
<asp:GridView ID="GridView1" AutoGenerateColumns="false" runat="server">
<Columns>
<asp:BoundField HeaderText="School" DataField="School" />
<asp:BoundField HeaderText="Team" DataField="Team" />
<asp:TemplateField HeaderText="Entries">
<ItemTemplate>
<asp:BulletedList ID="BulletedList1" runat="server"
DataSource='<%#Eval("Entries")%>' DataValueField="Name" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
UPDATE :
전체 모델을 보지 않고 조금 힘들다. 전체 쿼리를 구성하는 데 필요한 모든 모델 클래스를 게시 할 수 있습니까? –
@VladimirSachek 질문을 업데이트하여 클래스 다이어그램을 포함 시켰습니다. 충분히 명확한가요? – darren
조인을 사용하여 3 개의 엔티티 모두를 쿼리 해 보았습니까? – Bayeni