Ordinamento dei risultati (EntityDataSource)

Aggiornamento: novembre 2007

È possibile ordinare i risultati nel controllo EntityDataSource mediante la proprietà OrderBy. La proprietà OrderBy del controllo EntityDataSource è una stringa che rappresenta un'espressione ORDER BY di una query Entity SQL. Questa stringa viene passata, senza modifica, all'oggetto ObjectQuery<T> che funge da origine dati del controllo EntityDataSource. La stringa fornita alla proprietà OrderBy utilizza lo stesso formato della stringa passata al metodo OrderBy di ObjectQuery<T>. Per ottenere esempi su come utilizzare la clausola ORDER BY per ordinare i risultati delle query, vedere Procedura: ordinare dati (Entity Framework).

Passaggio di parametri

Analogamente al metodo OrderBy della classe ObjectQuery<T>, è possibile passare parametri alla clausola ORDER BY nella proprietà OrderBy. È necessario definire la proprietà OrderByParameters del controllo EntityDataSource per specificare un oggetto ParameterCollection per la clausola ORDER BY della query. La proprietà OrderByParameters utilizza un argomento denominato per fare riferimento al parametro assegnato nella proprietà OrderBy.

Se non si definisce la proprietà OrderByParameters, non viene effettuata alcuna sostituzione di parametri. Il nome di parametro nella clausola ORDER BY, che ha come prefisso il simbolo "@", deve presentare un nome corrispondente nell'oggetto ParameterCollection. I parametri appartenenti a un oggetto ParameterCollection non possono presentare valori null.

Generazione automatica della clausola ORDER BY

È possibile generare automaticamente la clausola ORDER BY impostando la proprietà AutoGenerateOrderByClause del controllo EntityDataSource su true. Il controllo EntityDataSource genererà automaticamente una clausola ORDER BY dal parametro dell'oggetto ParameterCollection assegnato alla proprietà OrderByParameters. In tal modo viene eliminata la necessità di assegnare in modo esplicito una clausola ORDER BY alla proprietà OrderBy. Quando si genera automaticamente la clausola ORDER BY dalla proprietà OrderByParameters, è necessario verificare che la proprietà Name del parametro nell'insieme identifichi una singola proprietà dell'elemento restituito dalla query.

Esempio

Nell'esempio riportato di seguito viene generata automaticamente la clausola ORDER BY e viene utilizzato il valore di orderByDropDownList per impostare il valore del parametro.

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

Vedere anche

Concetti

Configurazione del controllo EntityDataSource

Filtro dei dati (EntityDataSource)

Finestra di progettazione EntityDataSource

Procedura guidata Configura origine dati (controllo EntityDataSource)

Testo del comando personalizzato (EntityDataSource)

Altre risorse

Esecuzione di query sui dati come oggetti (Entity Framework)