次の方法で共有


並べ替えの結果 (EntityDataSource)

更新 : 2007 年 11 月

EntityDataSource コントロールでは、OrderBy プロパティを使用して結果を並べ替えることができます。EntityDataSource コントロールの OrderBy プロパティは、Entity SQL クエリの ORDER BY 式を表す文字列です。この文字列は、EntityDataSource コントロールのデータ ソースとして機能する ObjectQuery<T> にそのまま渡されます。OrderBy プロパティに渡される文字列の形式は、ObjectQuery<T>OrderBy メソッドに渡される文字列の形式と同じです。ORDER BY 句を使用してクエリ結果を並べ替える方法の例については、「データを並べ替える方法 (Entity Framework)」を参照してください。

パラメータの引き渡し

ObjectQuery<T> クラスの OrderBy メソッドと同様に、OrderBy プロパティの ORDER BY 句にはパラメータを渡すことができます。クエリの ORDER BY 句に対して ParameterCollection を指定するには、EntityDataSource コントロールの OrderByParameters プロパティを定義する必要があります。OrderByParameters プロパティでは、名前付き引数を使用して、OrderBy プロパティに割り当てられているパラメータを参照します。

OrderByParameters プロパティが定義されていないと、パラメータ置換は実行されません。ORDER BY 句の "@" 記号で始まるパラメータ名は、対応する名前が ParameterCollection に存在する必要があります。ParameterCollection のパラメータに null 値は使用できません。

ORDER BY 句の自動生成

EntityDataSource コントロールの AutoGenerateOrderByClause プロパティを true に設定すると、ORDER BY 句を自動的に生成できます。この場合、EntityDataSource コントロールは、OrderByParameters プロパティに割り当てられた ParameterCollection のパラメータから自動的に ORDER BY 句を生成します。このため、OrderBy プロパティに明示的に ORDER BY 句を割り当てる必要はありません。OrderByParameters プロパティから自動的に ORDER BY 句を生成する場合は、コレクション内のパラメータの Name プロパティが、クエリから返される項目の単一のプロパティを識別することを確認してください。

次の例では、ORDER BY 句を自動的に生成し、orderByDropDownList の値を使用して、パラメータの値を設定します。

<asp:EntityDataSource ID="SalesOrderHeader" runat="server" 
    ConnectionString="name=AdventureWorksEntities"
    DefaultContainerName="AdventureWorksEntities" EnableDelete="True" 
    EnableInsert="True" EnableUpdate="True" EntitySetName="SalesOrderHeader" 
    Where="it.OnlineOrderFlag = true" AutoGenerateOrderByClause="True">
    <OrderByParameters>
        <asp:ControlParameter Name="OrderByParameter" 
            ControlID="orderByDropDownList" Type="String" />
    </OrderByParameters>
</asp:EntityDataSource>

参照

概念

EntityDataSource コントロールの構成

データのフィルタ処理 (EntityDataSource)

EntityDataSource デザイナ

データ ソースの構成ウィザード (EntityDataSource コントロール)

カスタム コマンド テキスト (EntityDataSource)

その他の技術情報

オブジェクトとしてのデータのクエリ (Entity Framework)