アソシエーションのグループをリストしようとしています。各アソシエーション内には、アソシエーションに割り当てられた「ウィジェット」があります。リストには、アソシエーション名とそれに割り当てられたウィジェットが含まれます。問題は、内側のウィジェット リストを DisplaySequence でソートする必要があることです。
以下の EDMX モデル:
リピーターマークアップの簡素化
<asp:Repeater ID="rptAssociations" runat="server">
<ItemTemplate>
<div data-type="assn" id="<%# ((Association)Container.DataItem).AssociationID %>">
<h3 style="margin-top:15px;"><%# ((Association)Container.DataItem).Acronym %> - <%# ((Association)Container.DataItem).Name %></h3>
<asp:Repeater runat="server" ID="rptWidgets" DataSource="<%# ((Association)Container.DataItem).AssociationWidgets %>" >
<HeaderTemplate>
<ul class="WidgetList">
</HeaderTemplate>
<ItemTemplate>
<li id="<%# ((AssociationWidget)Container.DataItem).DisplaySequence %>"><%# ((AssociationWidget)Container.DataItem).Widget.Name %></li>
</ItemTemplate>
<FooterTemplate>
</ul>
</FooterTemplate>
</asp:Repeater>
</div>
</ItemTemplate>
</asp:Repeater>
現在のクエリ
var associations = (from a in
context.Associations.Include("AssociationWidgets")
.Include("AssociationWidgets.Widget")
orderby a.Acronym
select a).ToList();
rptAssociations.DataSource = associations;
rptAssociations.DataBind();
現在、現在のセットアップで探しているデータを取得できます。これと同じデータを取得するための最も効率的な方法を探していますが、ウィジェットを正しい表示順序でリストします。
私が取るべきlinqクエリへの別のアプローチはありますか?