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 proprietà Select 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 parola chiave Key contiene la proprietà utilizzata per il raggruppamento dei dati. In questo esempio Key conterrà i valori condivisi della proprietà ProductCategory.

<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 proprietà Select, il controllo LinqDataSource recupera tutte le proprietà (colonne di dati) dall'oggetto dati. Utilizzare la proprietà Select 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 proprietà Select sui nomi delle proprietà da includere nei dati restituiti.

Se si recupera un subset di proprietà dall'oggetto dati, il controllo LinqDataSource crea dinamicamente una classe che contiene solo le proprietà specificate nella proprietà Select. Viene inoltre creata dinamicamente una classe 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 proprietà TableName. È invece necessario utilizzare il metodo new nella proprietà Select per indicare che viene restituita una nuova classe dalla query. Ad esempio, per restituire solo le proprietà FirstName e LastName da un oggetto che contiene più di queste proprietà, impostare la proprietà Select su new(FirstName, LastName). Il controllo LinqDataSource creerà dinamicamente la nuova classe specificata nel metodo new.

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

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

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

Se si desidera abilitare le modifiche automatiche ai dati, ma non si desidera visualizzare tutte le proprietà dell'oggetto dati, non impostare la proprietà Select. Gestire invece la visualizzazione tramite il controllo associato a dati. Quando si utilizza il controllo DetailsView o il controllo GridView, è necessario impostare anche il AutoGenerateRows o la proprietà 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 proprietà Select. È possibile usare i metodi di aggregazione seguenti:

  • Count()

  • colonna

  • colonna

  • colonna

  • colonna

  • Where( condizione)

  • Any()

  • All( condizione)

Per altre informazioni, vedere Cenni preliminari sul controllo server Web LinqDataSource e Procedura: Raggruppare e aggregare i dati usando il controllo LinqDataSource.

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

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

Si applica a