LinqDataSource.Select 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
取得或設定擷取數據中包含的屬性和計算值。
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 的資料綁定控制項,必須以別名來指稱該屬性。 例如,若將屬性設 Select 為 new(Region As SalesRegion, Revenue / 1000 As RevenueThousands),資料綁定控制項可存取兩個屬性 SalesRegion 和 RevenueThousands。
你依照下表列出的條件使用 new 屬性中的 Select 函式。
| 選擇 | 使用新的 | 例 |
|---|---|---|
| Single 屬性。 |
new 不需要。 |
Select="Category" |
| 多個屬性。 |
new 需要。 |
Select="new(Category, Name)" |
| 具有別名的單一或多個屬性。 |
new 需要。 |
Select="new(Category As CategoryGroup)" |
如果你想啟用自動資料修改,但又不想顯示資料物件中的所有屬性,就不要設定該 Select 屬性。 相反地,請透過數據綁定控件管理顯示。 當你使用 控制項DetailsView或控制項GridView時,也必須將 或 AutoGenerateColumns 屬性設AutoGenerateRows為 false。 未顯示在數據綁定控件中的任何值都會儲存在檢視狀態中。 執行數據更新時,它們會保持不變地傳遞至數據源。
當你在查詢中將資料分組時,你可以在屬性中加入彙總方法 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 ,但這並非必須。