共用方式為


LinqDataSource.Select 屬性

定義

取得或設定擷取數據中包含的屬性和計算值。

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

屬性值

用來建立 Select 子句的字串。

範例

以下範例說明如何將該屬性設定 Select 為資料物件中的屬性子集。

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

下列範例示範如何擷取屬性中已用來分組數據的值,以及擷取群組記錄的平均值。 關鍵字 Key 包含用於分組資料的屬性。 在此範例中, Key 將包含屬性中 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>

備註

如果你沒有設定該 Select 屬性, LinqDataSource 控制項會從資料物件中取得所有屬性(資料欄位)。 你可以用這個 Select 屬性從物件中取得一部分屬性,或在資料檢索時計算新的值。

你要指定要檢索哪些屬性,方法是將屬性設定 Select 為你想包含在回傳資料中的屬性名稱。

如果你從資料物件中取得一部分屬性, LinqDataSource 控制項會動態建立一個類別,只包含你在屬性 Select 中指定的屬性。 如果您計算屬性不是數據物件中的屬性,也會動態建立類別。 在這些情況下,查詢回傳的物件並非屬性中指定的 TableName 類別實例。 相反地,你必須使用 new 屬性中 Select 的方法來表示查詢會回傳一個新類別。 例如,若要只 FirstName 回傳包含超過這些屬性的物件中的 和 屬性 LastName ,請將屬性 Select 設為 new(FirstName, LastName)。 控制 LinqDataSource 項會動態建立你在方法中 new 指定的新類別。

你可以用關鍵字 As 為選取的值指派別名。 如果你指派別名,必須在方法中包含別 new 名屬性。 任何綁定到控制結果 LinqDataSource 的資料綁定控制項,必須以別名來指稱該屬性。 例如,若將屬性設 Selectnew(Region As SalesRegion, Revenue / 1000 As RevenueThousands),資料綁定控制項可存取兩個屬性 SalesRegionRevenueThousands

你依照下表列出的條件使用 new 屬性中的 Select 函式。

選擇 使用新的
Single 屬性。 new 不需要。 Select="Category"
多個屬性。 new 需要。 Select="new(Category, Name)"
具有別名的單一或多個屬性。 new 需要。 Select="new(Category As CategoryGroup)"

如果你想啟用自動資料修改,但又不想顯示資料物件中的所有屬性,就不要設定該 Select 屬性。 相反地,請透過數據綁定控件管理顯示。 當你使用 控制項DetailsView或控制項GridView時,也必須將 或 AutoGenerateColumns 屬性設AutoGenerateRowsfalse。 未顯示在數據綁定控件中的任何值都會儲存在檢視狀態中。 執行數據更新時,它們會保持不變地傳遞至數據源。

當你在查詢中將資料分組時,你可以在屬性中加入彙總方法 Select 。 您可以使用下列匯總方法:

  • Count()

  • Average( 柱狀)

  • Sum( 柱狀)

  • Max( 柱狀)

  • Min( 柱狀)

  • Where( )

  • Any()

  • All( )

欲了解更多資訊,請參閱 LinqDataSource 網頁伺服器控制概述如何:使用 LinqDataSource 控制來分組與彙整資料

當你將資料分組時,可以將動態產生的屬性和 ,納入KeyItSelect屬性中。 屬性 Key 指的是用於將資料分組的屬性中的值。 例如,如果你以一個名為 Category的屬性來分組,該 Key 屬性會包含該 Category 屬性中每個唯一的值。 此 It 屬性指的是資料群組中的一組個別紀錄。 你可以遍 It 歷該屬性,取回已合併在群組操作中的個別紀錄。 例如,如果你依一個名為 Category的屬性分組,該 It 屬性包含所有在該 Category 屬性中共享共同值的個別紀錄。

如果你在資料分組時將關鍵字包含ItSelect在屬性中,必須為關鍵字指派別名It。 如果It沒有別名,控制組LinqDataSource會拋出例外。 你可以為關鍵字指派別名 Key ,但這並非必須。

適用於