Tri des résultats (EntityDataSource)
Mise à jour : novembre 2007
Vous pouvez trier les résultats dans votre contrôle EntityDataSource en utilisant la propriété OrderBy. La propriété OrderBy du contrôle EntityDataSource est une chaîne qui représente une expression ORDER BY d'une requête Entity SQL. Cette chaîne est passée, sans modification, au ObjectQuery<T> qui sert de source de données du contrôle EntityDataSource. La chaîne fournie à la propriété OrderBy utilise le même format que celle passée à la méthode OrderBy de ObjectQuery<T>. Pour des exemples décrivant comment utiliser la clause ORDER BY pour trier les résultats de la requête, consultez Comment : trier des données (Entity Framework).
Passage de paramètres
À l'instar de la méthode OrderBy de la classe ObjectQuery<T>, vous pouvez passer des paramètres à la clause ORDER BY dans la propriété OrderBy. Vous devez définir la propriété OrderByParameters du contrôle EntityDataSource pour spécifier un ParameterCollection pour la clause ORDER BY de la requête. La propriété OrderByParameters utilise un argument nommé pour faire référence au paramètre assigné dans la propriété OrderBy.
Si vous ne définissez pas la propriété OrderByParameters, aucune substitution de paramètres n'est effectuée. Le nom de paramètre dans la clause ORDER BY, préfixé par le symbole « @ », doit avoir un nom correspondant dans le ParameterCollection. Les valeurs Null ne sont pas autorisées pour les paramètres d'un ParameterCollection.
Génération automatique de la clause ORDER BY
Vous pouvez générer automatiquement la clause ORDER BY en affectant true à la propriété AutoGenerateOrderByClause du contrôle EntityDataSource. Le contrôle EntityDataSource générera ensuite automatiquement une clause ORDER BY à partir du paramètre dans le ParameterCollection qui est assigné à la propriété OrderByParameters. Cela évite d'avoir à assigner explicitement une clause ORDER BY à la propriété OrderBy. Lorsque vous générez automatiquement la clause ORDER BY à partir de la propriété OrderByParameters, vous devez vérifier que la propriété Name du paramètre dans la collection identifie une propriété unique de l'élément retourné par la requête.
Exemple
L'exemple suivant génère automatiquement la clause ORDER BY et utilise la valeur de orderByDropDownList pour définir la valeur du paramètre.
<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>
Voir aussi
Concepts
Configuration du contrôle EntityDataSource
Filtrage des données (EntityDataSource)
Assistant Configuration de la source de données (Contrôle EntityDataSource)
Texte de commande personnalisée (EntityDataSource)
Autres ressources
Interrogation des données en tant qu'objets (Entity Framework)