Freigeben über


Sortieren von Ergebnissen (EntityDataSource)

Aktualisiert: November 2007

Sie können die Ergebnisse im EntityDataSource-Steuerelement mit der OrderBy-Eigenschaft sortieren. Bei der OrderBy-Eigenschaft des EntityDataSource-Steuerelements handelt es sich um eine Zeichenfolge, die für einen ORDER BY-Ausdruck einer Entity SQL-Abfrage steht. Diese Zeichenfolge wird unverändert an ObjectQuery<T> übergeben, die als Datenquelle für das EntityDataSource-Steuerelement dient. Die an die OrderBy-Eigenschaft übergebene Zeichenfolge verwendet das gleiche Format wie die Zeichenfolge, die an die OrderBy-Methode von ObjectQuery<T> übergeben wird. Beispiele zur Verwendung der ORDER BY-Klausel zum Sortieren von Abfrageergebnissen finden Sie unter Gewusst wie: Sortieren von Daten (Entity Framework).

Übergeben von Parametern

Wie bei der OrderBy-Methode der ObjectQuery<T>-Klasse können Sie Parameter an die ORDER BY-Klausel in der OrderBy-Eigenschaft übergeben. Sie müssen die OrderByParameters-Eigenschaft des EntityDataSource-Steuerelements definieren, um eine ParameterCollection für die ORDER BY-Klausel der Abfrage anzugeben. Die OrderByParameters-Eigenschaft verwendet ein benanntes Argument, um auf den in der OrderBy-Eigenschaft zugewiesenen Parameter zu verweisen.

Falls Sie die OrderByParameters-Eigenschaft nicht definieren, werden keine Parameter ersetzt. Der Parametername in der ORDER BY-Klausel, dem ein "@"-Symbol voransteht, muss einen passenden Namen in ParameterCollection aufweisen. NULL-Werte sind für Parameter in ParameterCollection nicht zulässig.

Automatisches Erzeugen der ORDER BY-Klausel

Sie können die ORDER BY-Klausel automatisch erzeugen lassen, indem Sie die AutoGenerateOrderByClause-Eigenschaft des EntityDataSource-Steuerelements auf folgenden Wert setzen: true. Das EntityDataSource-Steuerelement erzeugt dann automatisch eine ORDER BY-Klausel anhand des Parameters in ParameterCollection, der der OrderByParameters-Eigenschaft zugewiesen ist. Auf diese Weise müssen Sie der OrderBy-Eigenschaft keine ORDER BY-Klausel explizit zuweisen. Wenn Sie die ORDER BY-Klausel anhand der OrderByParameters-Eigenschaft automatisch erzeugen lassen, müssen Sie sicherstellen, dass die Name-Eigenschaft des Parameters in der Auflistung nur auf eine einzige Eigenschaft des durch die Abfrage zurückgegebenen Elements zeigt.

Beispiel

Im folgenden Beispiel wird die ORDER BY-Klausel automatisch erzeugt und mit dem Wert von orderByDropDownList der Wert des Parameters festgelegt.

<asp:EntityDataSource ID="SalesOrderHeader"  
    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>

Siehe auch

Konzepte

Konfigurieren des EntityDataSource-Steuerelements

Filtern von Daten (EntityDataSource)

EntityDataSource-Designer

Assistent zum Konfigurieren von Datenquellen (EntityDataSource-Steuerelement)

Benutzerdefinierter Befehlstext (EntityDataSource)

Weitere Ressourcen

Abfragen von Daten als Objekte (Entity Framework)