次の方法で共有


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

プロパティ値

ORDER BY 句の作成に使用されるパラメーター。

例外

Select プロパティがクエリ プロジェクションを指定し、EnableUpdateEnableDelete、またはEnableInsertの値がtrue場合。

次の XML マークアップでは、 Select プロパティを使用して、Product 型の 6 つのプロパティを持つプロジェクションを指定します。

<asp:EntityDataSource ID="ProductDataSource" runat="server"
    ConnectionString="name=AdventureWorksEntities"
    DefaultContainerName="AdventureWorksEntities"
    EntitySetName="Product" OrderBy="it.[ProductID]"
    Select="it.[ProductID], it.[Name], it.[ListPrice],
    it.[Size], it.[Style], it.[Weight]">
</asp:EntityDataSource>

前の XML の例は、productsという名前の次のObjectQuery<T>と同じです。

ObjectQuery<Product> products = context.Product
    .Select(it.[ProductID], it.[Name], it.[ListPrice],
      it.[Size], it.[Style], it.[Weight])
    .OrderBy("it.[ProductID]");

注釈

EntityDataSource コントロールの Select プロパティには、Entity SQL クエリの SELECT ステートメントを表す文字列が含まれています。 これにより、クエリによって返されるオブジェクトから、指定したプロパティ セットを投影できます。

この文字列は、変更せずに Entity Framework によって実行される ObjectQuery<T> に渡されます。 このクエリは、 EntityDataSource コントロールによって規制されるデータのソースです。 Select プロパティに指定された文字列は、ObjectQuery<T>Select メソッドに渡される文字列と同じ形式を使用します。 SELECT 句を使用してクエリのプロジェクションを定義する方法の例については、「方法: 匿名型オブジェクトを返すクエリを実行する」を参照してください。

投影データの更新はサポートされていません。 つまり、 Select プロパティを使用してプロジェクションを指定すると、バインドされたデータ バインディングは更新をサポートしません。

ページングを有効にしてプロジェクションを定義する場合は、結果を並べ替えるプロパティを定義する必要があります。 つまり、Select プロパティをプロジェクションを定義し、AutoPagetrueに設定する場合は、順序を定義するか、AutoGenerateOrderByClause プロパティをtrueに設定して ORDER BY パラメーターをOrderByParameters コレクションに追加するOrderBy プロパティも設定する必要があります。

Select は、 EnableUpdateEnableDelete、または EnableInsert が有効になっている場合は設定できません。

プロパティのプロジェクション (SELECT p.ProductID, p. Name FROM AdventureWorksEntities.Products AS p など) を返すクエリにSelectが設定されている場合は、DbDataRecordが返されます。

適用対象