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à utilizzata per raggruppare i dati e recuperare la media per i record raggruppati. La Key parola chiave contiene la proprietà utilizzata per il raggruppamento dei dati. In questo esempio Key conterrà i valori condivisi della 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 di dati) dall'oggetto dati. Utilizzare la Select proprietà per recuperare un subset di proprietà dall'oggetto o per calcolare nuovi valori quando i dati vengono recuperati.

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 in modo dinamico 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 utilizzare 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 che contiene 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à con alias nel new metodo . Qualsiasi controllo associato a dati che esegue l'associazione ai risultati del LinqDataSource controllo deve fare riferimento alla proprietà dall'alias. Ad esempio, se si imposta la Select proprietà su new(Region As SalesRegion, Revenue / 1000 As RevenueThousands), il controllo associato a dati può accedere a due proprietà e RevenueThousandsSalesRegion .

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

Select Uso di un nuovo 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à dell'oggetto dati, non impostare la Select proprietà . Gestire invece la visualizzazione tramite il controllo associato a dati. Quando si utilizza il DetailsView controllo o il GridView controllo , è necessario impostare anche la AutoGenerateRows proprietà o AutoGenerateColumns su false. Tutti i valori non visualizzati nel controllo associato a 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 Cenni preliminari sul controllo server Web LinqDataSource e Procedura: Raggruppare e aggregare 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 nella proprietà o nelle proprietà utilizzate 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 scorrere la 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 LinqDataSource controllo genererà un'eccezione se It non ha un alias. È possibile assegnare un alias alla Key parola chiave , ma non è obbligatorio.

Si applica a