我希望在確定使用Linq to Entities進行應用程序的正確方法方面提供任何幫助。特別是,當處理多個多對多表格時,我很難理解分組。Linq to Entities - 使用group by來創建多對多的表格
簡化數據庫設計是:
http://imageshack.us/a/img443/5863/entitydesignerdiagram.png
DB設計理念:
人:即有機會獲得編輯多個統計個別人。 季節:按2012年棒球或2012年統計的時間段。玩家:參與統計的個人或gorup。這裏所需要的只是實體的名稱。如Kevin Wasie或Varsity Team 統計數據:包含屬於一個賽季的個人統計信息,例如達陣或家庭運行。
代碼背後:
Dim stats = From st In pl.statistics From per In st.people
Where per.id.Equals(personID)
Select New With
{.season_name = st.season.name, .statistic_name = st.name, .season_id = st.season.id,
.players = From play In pl.players
Where play.seasonId = st.season.id
Select New With {.player_name = play.name}}
rep_statistics.DataSource = stats
rep_statistics.DataBind()
的.aspx:
<asp:Repeater ID="rep_actions" runat="server">
<HeaderTemplate>
</HeaderTemplate>
<ItemTemplate>
<b><%# Eval("season_name")%></b> - <%# Eval("statistic_name")%><br />
<asp:Repeater ID="rep_part" runat="server" DataSource='<%# Eval("players")%>'>
<itemtemplate>
<%# Eval("participantname")%>
</itemtemplate>
<SeparatorTemplate>,</SeparatorTemplate>
</asp:Repeater>
</ItemTemplate>
</asp:Repeater>
期望得到的結果是讓頁面由賽季如此顯示的分組:
Season 1
Statistic 1
Season1 Players
Statistic 2
Season1 Players
Statistic 3
Season1 Players
Season 2
Statistic 4
Season 2 Players
...
目前的結果是:
Season 1
Statistic 1
Season1 Players
Season 1
Statistic 2
Season1 Players
Season 1
Statistic 3
Season1 Players
Season 2
Statistic 4
Season 2 Players
...
如何修改linq以獲得期望的結果?
任何幫助,包括教程或其他信息的鏈接,將不勝感激。先謝謝你!
現在的結果是什麼。無論如何,db結構看起來不太好。人與玩家之間應該有直接的關係。 –
結果現在是:Season1/Statistic1/Season1Players> Season1/Statistic2/Season1Players ...我想它是Season1/Statitic1/Season1Players> Statistic2/Season1Players等... 數據庫設計:玩家和人是兩個不同的事情:玩家可以是個人或團隊,因此玩家表所需要的只是該季節涉及的實體的名稱。人員表是可以訪問多個統計信息進行編輯的個人。在實際設計中,我確實有一個人口統計表來存放人口統計數據,但爲簡單起見,此處不再贅述。 –