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 プロパティで指定されたクラスのインスタンスではありません。 代わりに、Select プロパティで new
メソッドを使用して、クエリから新しいクラスが返されることを示す必要があります。 たとえば、これらのプロパティを超えるプロパティを含むオブジェクトから FirstName
プロパティと LastName
プロパティのみを返すには、Select プロパティを new(FirstName, LastName)
に設定します。
LinqDataSource コントロールは、new
メソッドで指定した新しいクラスを動的に作成します。
As
キーワードを使用して、選択した値にエイリアスを割り当てることができます。 エイリアスを割り当てる場合は、エイリアス化されたプロパティを new
メソッドに含める必要があります。
LinqDataSource コントロールの結果にバインドするデータ バインド コントロールは、エイリアスによってプロパティを参照する必要があります。 たとえば、Select プロパティを new(Region As SalesRegion, Revenue / 1000 As RevenueThousands)
に設定すると、データ バインド コントロールは SalesRegion
と RevenueThousands
の 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 コントロールを使用してデータをグループ化および集計する方法」を参照してください。
データをグループ化するときに、動的に作成されるプロパティである Key
と It
を Select プロパティに含めることができます。
Key
プロパティは、データのグループ化に使用されたプロパティ内の値を参照します。 たとえば、Category
という名前のプロパティでグループ化した場合、Key
プロパティには、Category
プロパティ内の各一意の値が含まれます。
It
プロパティは、データグループ内の個々のレコードのコレクションを参照します。
It
プロパティを反復処理して、グループ化操作で統合された個々のレコードを取得できます。 たとえば、Category
という名前のプロパティでグループ化した場合、It
プロパティには、Category
プロパティで共通の値を共有するすべての個々のレコードが含まれます。
データをグループ化するときに Select プロパティに It
キーワードを含める場合は、It
キーワードにエイリアスを割り当てる必要があります。
It
にエイリアスがない場合、LinqDataSource コントロールは例外をスローします。
Key
キーワードにはエイリアスを割り当てることができますが、これは必須ではありません。
適用対象
.NET