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)
Assistent zum Konfigurieren von Datenquellen (EntityDataSource-Steuerelement)
Benutzerdefinierter Befehlstext (EntityDataSource)