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 プロパティで指定されたクラスのインスタンスではありません。 代わりに、Select プロパティで new メソッドを使用して、クエリから新しいクラスが返されることを示す必要があります。 たとえば、これらのプロパティを超えるプロパティを含むオブジェクトから FirstName プロパティと LastName プロパティのみを返すには、Select プロパティを new(FirstName, LastName)に設定します。 LinqDataSource コントロールは、new メソッドで指定した新しいクラスを動的に作成します。

As キーワードを使用して、選択した値にエイリアスを割り当てることができます。 エイリアスを割り当てる場合は、エイリアス化されたプロパティを new メソッドに含める必要があります。 LinqDataSource コントロールの結果にバインドするデータ バインド コントロールは、エイリアスによってプロパティを参照する必要があります。 たとえば、Select プロパティを new(Region As SalesRegion, Revenue / 1000 As RevenueThousands)に設定すると、データ バインド コントロールは SalesRegionRevenueThousandsの 2 つのプロパティにアクセスできます。

new 関数は、次の表に示す条件に従って、Select プロパティで使用します。

選ぶ 新規の使用
単一プロパティ。 new は必要ありません。 Select="Category"
複数のプロパティ。 new 必要です。 Select="new(Category, Name)"
エイリアスを持つ 1 つまたは複数のプロパティ。 new 必要です。 Select="new(Category As CategoryGroup)"

データの自動変更を有効にしたいが、データ オブジェクトのすべてのプロパティを表示しない場合は、Select プロパティを設定しないでください。 代わりに、データ バインド コントロールを使用して表示を管理します。 DetailsView コントロールまたは GridView コントロールを使用する場合は、AutoGenerateRows または AutoGenerateColumns プロパティを falseに設定する必要もあります。 データ バインド コントロールに表示されない値は、ビューステートに格納されます。 これらは、データ更新の実行時にデータ ソースに変更されずに渡されます。

クエリでデータをグループ化するときに、集計メソッドを Select プロパティに含めることができます。 次の集計メソッドを使用できます。

  • Count()

  • する

  • する

  • する

  • する

  • Where( 条件の)

  • Any()

  • All( 条件の)

詳細については、「LinqDataSource Web サーバー コントロールの概要 方法: LinqDataSource コントロールを使用してデータをグループ化および集計する方法」を参照してください。

データをグループ化するときに、動的に作成されるプロパティである KeyItSelect プロパティに含めることができます。 Key プロパティは、データのグループ化に使用されたプロパティ内の値を参照します。 たとえば、Categoryという名前のプロパティでグループ化した場合、Key プロパティには、Category プロパティ内の各一意の値が含まれます。 It プロパティは、データグループ内の個々のレコードのコレクションを参照します。 It プロパティを反復処理して、グループ化操作で統合された個々のレコードを取得できます。 たとえば、Categoryという名前のプロパティでグループ化した場合、It プロパティには、Category プロパティで共通の値を共有するすべての個々のレコードが含まれます。

データをグループ化するときに Select プロパティに It キーワードを含める場合は、It キーワードにエイリアスを割り当てる必要があります。 It にエイリアスがない場合、LinqDataSource コントロールは例外をスローします。 Key キーワードにはエイリアスを割り当てることができますが、これは必須ではありません。

適用対象