Compartir a través de


Ordenar los resultados (EntityDataSource)

Actualización: noviembre 2007

Puede ordenar los resultados del control EntityDataSource utilizando la propiedad OrderBy. La propiedad OrderBy del control EntityDataSource es una cadena que representa una expresión ORDER BY de una consulta de Entity SQL. Esta cadena se pasa, sin modificaciones, a la clase ObjectQuery<T> que actúa como origen de datos del control EntityDataSource. La cadena suministrada a la propiedad OrderBy usa el mismo formato que la cadena pasada al método OrderBy de la clase ObjectQuery<T>. Para obtener ejemplos de cómo utilizar la cláusula ORDER BY para ordenar los resultados de la consulta, vea Cómo: Ordenar datos (Entity Framework).

Pasar parámetros

Al igual que el método OrderBy de la clase ObjectQuery<T>, puede pasar parámetros a la cláusula ORDER BY en la propiedad OrderBy. Debe definir la propiedad OrderByParameters del control EntityDataSource para especificar una clase ParameterCollection para la cláusula ORDER BY de la consulta. La propiedad OrderByParameters utiliza un argumento con nombre para hacer referencia al parámetro asignado en la propiedad OrderBy.

Si no define la propiedad OrderByParameters, no se realiza ninguna sustitución de parámetros. El nombre de parámetro de la cláusula ORDER BY, que tiene como prefijo el símbolo "@", debe tener un nombre coincidente en la clase ParameterCollection. No se permiten valores nulos para los parámetros de una clase ParameterCollection.

Generar automáticamente la cláusula ORDER BY

Puede generar automáticamente la cláusula ORDER BY estableciendo la propiedad AutoGenerateOrderByClause del control EntityDataSource en true.. A continuación, el control EntityDataSource generará automáticamente una cláusula ORDER BY a partir del parámetro de la clase ParameterCollection que está asignado a la propiedad OrderByParameters. Esto elimina la necesidad de asignar explícitamente una cláusula ORDER BY a la propiedad OrderBy. Al generar automáticamente la cláusula ORDER BY a partir de la propiedad OrderByParameters, debe comprobar que la propiedad Name del parámetro de la colección identifica una única propiedad del elemento devuelto por la consulta.

Ejemplo

El ejemplo siguiente genera automáticamente la cláusula ORDER BY y utiliza el valor de orderByDropDownList para establecer el valor del parámetro.

<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>

Vea también

Conceptos

Configurar el control EntityDataSource

Filtrar datos (EntityDataSource)

Diseñador EntityDataSource

Configurar el Asistente del origen de datos (control EntityDataSource)

Texto de comando personalizado (EntityDataSource)

Otros recursos

Consultar datos como objetos (Entity Framework)