LinqDataSource.Select Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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.