Condividi tramite


LinqDataSource.Select Proprietà

Definizione

Ottiene o imposta le proprietà e i valori calcolati inclusi nei dati recuperati.

public:
 property System::String ^ Select { System::String ^ get(); void set(System::String ^ value); };
public string Select { get; set; }
member this.Select : string with get, set
Public Property Select As String

Valore della proprietà

Stringa utilizzata per creare la clausola Select.

Esempio

Nell'esempio seguente viene illustrato come impostare la Select proprietà su un subset di proprietà nell'oggetto dati.

<asp:LinqDataSource 
    ContextTypeName="ExampleDataContext" 
    TableName="Products" 
    Select="new(Name, Category, Price)"
    ID="LinqDataSource1" 
    runat="server">
</asp:LinqDataSource>
<asp:GridView 
    DataSourceID="LinqDataSource1"
    ID="GridView1" 
    runat="server">
</asp:GridView>
<asp:LinqDataSource 
    ContextTypeName="ExampleDataContext" 
    TableName="Products" 
    Select="new(Name, Category, Price)"
    ID="LinqDataSource1" 
    runat="server">
</asp:LinqDataSource>
<asp:GridView 
    DataSourceID="LinqDataSource1"
    ID="GridView1" 
    runat="server">
</asp:GridView>

Nell'esempio seguente viene illustrato come recuperare i valori in una proprietà usata per raggruppare i dati e recuperare la media per i record raggruppati. La Key parola chiave contiene la proprietà usata per raggruppare i dati. In questo esempio, Key conterrà i valori condivisi dalla ProductCategory proprietà.

<asp:LinqDataSource 
    ContextTypeName="ExampleDataContext" 
    TableName="Products" 
    GroupBy="Category"
    Select="new(Key as ProductCategory, 
            Average(Price) as AvePrice)"
    ID="LinqDataSource1" 
    runat="server">
</asp:LinqDataSource>
<asp:GridView 
    AllowPaging="true"
    DataSourceID="LinqDataSource1"
    ID="GridView1" 
    runat="server">
</asp:GridView>
<asp:LinqDataSource 
    ContextTypeName="ExampleDataContext" 
    TableName="Products" 
    GroupBy="Category"
    Select="new(Key as ProductCategory, 
            Average(Price) as AvePrice)"
    ID="LinqDataSource1" 
    runat="server">
</asp:LinqDataSource>
<asp:GridView 
    AllowPaging="true"
    DataSourceID="LinqDataSource1"
    ID="GridView1" 
    runat="server">
</asp:GridView>

Commenti

Se non si imposta la Select proprietà, il LinqDataSource controllo recupera tutte le proprietà (colonne dati) dall'oggetto dati. Si usa la Select proprietà per recuperare un subset di proprietà dall'oggetto o per calcolare nuovi valori quando vengono recuperati i dati.

Specificare le proprietà da recuperare impostando la Select proprietà sui nomi delle proprietà da includere nei dati restituiti.

Se si recupera un subset di proprietà dall'oggetto dati, il LinqDataSource controllo crea dinamicamente una classe che contiene solo le proprietà specificate nella Select proprietà. Una classe viene creata dinamicamente anche se si calcolano proprietà che non sono proprietà nell'oggetto dati. In questi casi l'oggetto restituito dalla query non è un'istanza della classe specificata nella TableName proprietà . È invece necessario usare il new metodo nella Select proprietà per indicare che una nuova classe viene restituita dalla query. Ad esempio, per restituire solo le FirstName proprietà e LastName da un oggetto contenente più di queste proprietà, impostare la Select proprietà su new(FirstName, LastName). Il LinqDataSource controllo creerà dinamicamente la nuova classe specificata nel new metodo.

È possibile usare la As parola chiave per assegnare un alias a un valore selezionato. Se si assegna un alias, è necessario includere le proprietà new alias nel metodo. Qualsiasi controllo associato a dati che associa ai risultati del LinqDataSource controllo deve fare riferimento alla proprietà tramite l'alias. Ad esempio, se si imposta la Select proprietà su new(Region As SalesRegion, Revenue / 1000 As RevenueThousands), il controllo associato ai dati può accedere a due proprietà SalesRegion e RevenueThousands.

Utilizzare la new funzione nella Select proprietà in base alle condizioni elencate nella tabella seguente.

Select Uso di nuovi Esempio
Proprietà singola. new non necessario. Select="Category"
Più proprietà. new Necessario. Select="new(Category, Name)"
Proprietà singole o multiple con alias. new Necessario. Select="new(Category As CategoryGroup)"

Se si desidera abilitare le modifiche automatiche dei dati, ma non si desidera visualizzare tutte le proprietà dall'oggetto dati, non impostare la Select proprietà. Gestire invece la visualizzazione tramite il controllo associato a dati. Quando si usa il controllo o il DetailsView controllo, è necessario impostare anche la AutoGenerateRowsAutoGenerateColumns proprietà o su false.GridView Tutti i valori non visualizzati nel controllo associato ai dati vengono archiviati nello stato di visualizzazione. Vengono passati invariati all'origine dati quando viene eseguito l'aggiornamento dei dati.

Quando si raggruppano i dati nella query, è possibile includere metodi di aggregazione nella Select proprietà. È possibile usare i metodi di aggregazione seguenti:

  • Count()

  • Average(Colonna)

  • Sum(Colonna)

  • Max(Colonna)

  • Min(Colonna)

  • Where(Condizione)

  • Any()

  • All(Condizione)

Per altre informazioni, vedere Panoramica del controllo server Web LinqDataSourcee Procedura: raggruppare e aggregare i dati usando il controllo LinqDataSource.

Quando si raggruppano i dati, è possibile includere Key e It, che sono proprietà create dinamicamente, nella Select proprietà . La Key proprietà fa riferimento ai valori della proprietà o delle proprietà usate per raggruppare i dati. Ad esempio, se si raggruppa in base a una proprietà denominata Category, la Key proprietà conterrà ogni valore univoco nella Category proprietà. La It proprietà fa riferimento a una raccolta di singoli record in un raggruppamento di dati. È possibile eseguire l'iterazione della It proprietà per recuperare i singoli record consolidati nell'operazione di raggruppamento. Ad esempio, se si raggruppa in base a una proprietà denominata Category, la It proprietà contiene tutti i singoli record che condividono un valore comune nella Category proprietà.

Se si include la It parola chiave nella Select proprietà quando si raggruppano i dati, è necessario assegnare un alias alla It parola chiave. Il controllo genererà un'eccezione LinqDataSource se It non ha un alias. È possibile assegnare un alias alla Key parola chiave, ma non è necessario.

Si applica a