EntityDatasource是否在查询扩展程序之前或之后执行“order by”

时间:2011-10-14 06:34:22

标签: .net entitydatasource

以下实体数据源是否会在queryextender中的每个CustomExpression中进行过滤后执行orderby,或者它将首先执行orderby,然后在选择之前进入每个查询扩展器。

<asp:EntityDataSource ID="edsMembers" runat="server" 
    ConnectionString="name=MOSContainer" DefaultContainerName="MOSContainer" 
    EnableFlattening="False" EntitySetName="Members" EntityTypeFilter="Member"
    OrderBy="it.UserName" EnableDelete="True" ondeleted="edsMembers_Deleted">
</asp:EntityDataSource>
<asp:QueryExtender ID="qedMembers" runat="server" TargetControlID="edsMembers">
<asp:CustomExpression OnQuerying="FilterMembersActivatedEmail"></asp:CustomExpression>
<asp:CustomExpression OnQuerying="FilterMembersOccupationType"></asp:CustomExpression>
</asp:QueryExtender>

1 个答案:

答案 0 :(得分:1)

QueryData源order by子句应用于PageInit,因此位于从实际数据源应用的那个之前。 这里也存在一个问题 - 由于查询扩展器和数据源创建了两个单独的order by子句,因此只有其中一个被尊重,这是应用的最后一个(来自数据源的那个)。 Linq to SQL数据源也是如此。 Here is a link我的类似问题。