LinqDataSource.Select Eigenschaft

Definition

Dient zum Abrufen oder Festlegen der Eigenschaften und berechneten Werte, die in den abgerufenen Daten enthalten sind.

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

Eigenschaftswert

Eine Zeichenfolge, die zum Erstellen der Select-Klausel verwendet wird.

Beispiele

Das folgende Beispiel zeigt, wie die Select-Eigenschaft auf eine Teilmenge von Eigenschaften im Datenobjekt festgelegt wird.

<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>

Das folgende Beispiel zeigt, wie Werte in einer Eigenschaft abgerufen werden, die zum Gruppieren von Daten verwendet wurde, und zum Abrufen des Mittelwerts für die gruppierten Datensätze. Das schlüsselwort Key enthält die Eigenschaft, die zum Gruppieren von Daten verwendet wurde. In diesem Beispiel enthält Key die freigegebenen Werte aus der ProductCategory-Eigenschaft.

<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>

Hinweise

Wenn Sie die Select-Eigenschaft nicht festlegen, ruft das LinqDataSource-Steuerelement alle Eigenschaften (Datenspalten) aus dem Datenobjekt ab. Mit der Select-Eigenschaft können Sie eine Teilmenge von Eigenschaften aus dem Objekt abrufen oder neue Werte berechnen, wenn die Daten abgerufen werden.

Sie geben an, welche Eigenschaften abgerufen werden sollen, indem Sie die eigenschaft Select auf die Namen der Eigenschaften festlegen, die Sie in die zurückgegebenen Daten aufnehmen möchten.

Wenn Sie eine Teilmenge von Eigenschaften aus dem Datenobjekt abrufen, erstellt das LinqDataSource-Steuerelement dynamisch eine Klasse, die nur die Eigenschaften enthält, die Sie in der Select-Eigenschaft angeben. Eine Klasse wird auch dynamisch erstellt, wenn Sie Eigenschaften berechnen, die keine Eigenschaften im Datenobjekt sind. In diesen Fällen ist das von der Abfrage zurückgegebene Objekt keine Instanz der Klasse, die in der TableName-Eigenschaft angegeben ist. Stattdessen müssen Sie die new-Methode in der Select-Eigenschaft verwenden, um anzugeben, dass eine neue Klasse von der Abfrage zurückgegeben wird. Wenn Sie beispielsweise nur die eigenschaften FirstName und LastName von einem Objekt zurückgeben möchten, das mehr als diese Eigenschaften enthält, legen Sie die Select-Eigenschaft auf new(FirstName, LastName)fest. Das LinqDataSource-Steuerelement erstellt dynamisch die neue Klasse, die Sie in der new-Methode angegeben haben.

Sie können das schlüsselwort As verwenden, um einem ausgewählten Wert einen Alias zuzuweisen. Wenn Sie einen Alias zuweisen, müssen Sie die aliasierten Eigenschaften in die new-Methode einschließen. Jedes datengebundene Steuerelement, das an die Ergebnisse des LinqDataSource-Steuerelements gebunden ist, muss vom Alias auf die Eigenschaft verweisen. Wenn Sie beispielsweise die eigenschaft Select auf new(Region As SalesRegion, Revenue / 1000 As RevenueThousands)festlegen, kann das datengebundene Steuerelement auf zwei Eigenschaften zugreifen, SalesRegion und RevenueThousands.

Sie verwenden die funktion new in der eigenschaft Select gemäß den in der folgenden Tabelle aufgeführten Bedingungen.

Auswählen Verwendung von "Neu" Beispiel
Einzelne Eigenschaft. new nicht erforderlich. Select="Category"
Mehrere Eigenschaften. new erforderlich. Select="new(Category, Name)"
Einzelne oder mehrere Eigenschaften mit einem Alias. new erforderlich. Select="new(Category As CategoryGroup)"

Wenn Sie automatische Datenänderungen aktivieren möchten, aber nicht alle Eigenschaften aus dem Datenobjekt anzeigen möchten, legen Sie die Select-Eigenschaft nicht fest. Verwalten Sie stattdessen die Anzeige über das datengebundene Steuerelement. Wenn Sie das DetailsView-Steuerelement oder das GridView-Steuerelement verwenden, müssen Sie auch die AutoGenerateRows oder die AutoGenerateColumns-Eigenschaft auf falsefestlegen. Alle Werte, die nicht im datengebundenen Steuerelement angezeigt werden, werden im Ansichtszustand gespeichert. Sie werden unverändert an die Datenquelle übergeben, wenn die Datenaktualisierung ausgeführt wird.

Wenn Sie Daten in der Abfrage gruppieren, können Sie Aggregatmethoden in die eigenschaft Select einschließen. Sie können die folgenden Aggregatmethoden verwenden:

  • Count()

  • Average( Spalten-)

  • Sum( Spalten-)

  • Max( Spalten-)

  • Min( Spalten-)

  • Where( Bedingung)

  • Any()

  • All( Bedingung)

Weitere Informationen finden Sie unter LinqDataSource Web Server Control Overview and How to: Group and Aggregate Data Using the LinqDataSource Control.

Wenn Sie Daten gruppieren, können Sie Key und Iteinschließen, die dynamisch erstellte Eigenschaften in die eigenschaft Select. Die Key-Eigenschaft bezieht sich auf die Werte in der Eigenschaft oder eigenschaften, die zum Gruppieren der Daten verwendet wurden. Wenn Sie beispielsweise nach einer Eigenschaft mit dem Namen Categorygruppieren, enthält die Key-Eigenschaft jeden eindeutigen Wert in der Category-Eigenschaft. Die It-Eigenschaft bezieht sich auf eine Sammlung einzelner Datensätze in einer Datengruppierung. Sie können die It-Eigenschaft durchlaufen, um die einzelnen Datensätze abzurufen, die im Gruppierungsvorgang konsolidiert wurden. Wenn Sie z. B. nach einer Eigenschaft mit dem Namen Categorygruppieren, enthält die It-Eigenschaft alle einzelnen Datensätze, die einen gemeinsamen Wert in der Category-Eigenschaft gemeinsam verwenden.

Wenn Sie das schlüsselwort It in die eigenschaft Select einschließen, wenn Sie Daten gruppieren, müssen Sie dem schlüsselwort It einen Alias zuweisen. Das LinqDataSource-Steuerelement löst eine Ausnahme aus, wenn It keinen Alias besitzt. Sie können dem Schlüsselwort Key einen Alias zuweisen, dies ist jedoch nicht erforderlich.

Gilt für: