Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Aggiornamento: novembre 2007
È possibile proiettare specifiche proprietà dagli oggetti restituiti da un controllo EntityDataSource mediante la proprietà Select. La proprietà Select del controllo EntityDataSource contiene una stringa che rappresenta l'istruzione SELECT di una query Entity SQL. Questa stringa viene passata, senza modifica, all'oggetto ObjectQuery<T> che, in caso di esecuzione, restituisce i dati nel controllo EntityDataSource. La stringa fornita alla proprietà Select utilizza lo stesso formato della stringa passata al metodo Select di ObjectQuery<T>. Per ottenere esempi su come utilizzare la clausola SELECT per definire una proiezione per una query, vedere Procedura: eseguire una query che restituisce un tipo anonimo (Entity Framework).
Nota: |
|---|
Non sono supportati aggiornamenti per i dati proiettati. Quando si utilizza la proprietà Select per specificare una proiezione, l'associazione dati non supporta aggiornamenti. |
Nel markup XML riportato di seguito viene utilizzata la proprietà Select per specificare una proiezione con sei proprietà del tipo Product:
<asp:EntityDataSource ID="ProductDataSource"
ConnectionString="name=AdventureWorksEntities"
DefaultContainerName="AdventureWorksEntities"
EntitySetName="Product" OrderBy="it.ProductID"
Select="it.ProductID, it.Name, it.ListPrice,
it.Size, it.Style, it.Weight">
</asp:EntityDataSource>
L'esempio XML precedente equivale all'oggetto ObjectQuery<T> seguente denominato products:
ObjectQuery<Product> products = context.Product
.Select(it.ProductID, it.Name, it.ListPrice,
it.Size, it.Style, it.Weight)
.OrderBy("it.ProductID");
Passaggio di parametri
Analogamente al metodo Select della classe ObjectQuery<T>, è possibile passare parametri alla proiezione definita dalla proprietà Select. È necessario definire la proprietà SelectParameters del controllo EntityDataSource per specificare un oggetto ParameterCollection per l'istruzione SELECT della query. La proprietà SelectParameters utilizza argomenti denominati per fare riferimento ai parametri nella proprietà Select.
Se non si definisce la proprietà SelectParameters, non viene effettuata alcuna sostituzione di parametri. Tutti i nomi di parametro nell'istruzione SELECT, che hanno come prefisso il simbolo "@", devono presentare un nome corrispondente nell'oggetto ParameterCollection. I parametri appartenenti a un oggetto ParameterCollection non possono presentare valori null.
Nell'esempio riportato di seguito viene applicato un sconto del 90% a ogni Product nella query utilizzando un parametro in una delle proiezioni della proprietà.
<asp:EntityDataSource ID="EntityDataSource6"
EnableViewState="False"
EntitySetName="Products"
ConnectionString="name=NorthwindContext"
DefaultContainerName="NorthwindContext"
EntityTypeFilter="Products"
Select="it.ProductID, it.UnitsInStock, it.ProductName,
it.UnitPrice * @Discount as UnitPrice,
it.UnitsOnOrder as UnitsOnOrder, it.Discontinued"
Where="it.ProductID < 10"
>
<SelectParameters>
<asp:Parameter Name="Discount" DefaultValue=".90"
Type="Decimal" />
</SelectParameters>
</asp:EntityDataSource>
Vedere anche
Concetti
Finestra di progettazione EntityDataSource
Nota: