共用方式為


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 的任何數據綁定控件都必須依別名參考 屬性。 例如,如果您將 Select 屬性設定為 new(Region As SalesRegion, Revenue / 1000 As RevenueThousands),則數據綁定控制項可以存取兩個屬性和 SalesRegionRevenueThousands

new您會根據下表所列的條件,Select在屬性中使用 函式。

選取 使用新的 範例
單一屬性。 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(condition)

  • Any()

  • All(condition)

如需詳細資訊,請參閱 LinqDataSource Web 伺服器控件概觀如何:使用 LinqDataSource 控件分組和匯總數據

當您將資料分組時,您可以在 Key 屬性中包含 SelectIt,這些是動態建立的屬性。 屬性 Key 是指用來將數據分組的屬性或屬性中的值。 例如,如果您依名為 Category的屬性分組,屬性 Key 將會包含 屬性中的每個 Category 唯一值。 屬性 It 是指數據群組中的個別記錄集合。 您可以逐一查看 屬性, It 以擷取群組作業中已合併的個別記錄。 例如,如果您依名為 Category的屬性分組,則 It 屬性會包含共用 屬性中 Category 通用值的所有個別記錄。

如果您在群組數據時將 It 關鍵詞包含在 屬性中 Select ,則必須將別名指派給 It 關鍵詞。 如果沒有It別名,控件LinqDataSource將會擲回例外狀況。 您可以將別名指派給 Key 關鍵詞,但這並非必要專案。

適用於