EntityDataSource.Select Property

 
System_CAPS_noteNote

The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

Gets or sets the projection that defines the properties to include in the query results.

Namespace:   System.Web.UI.WebControls
Assembly:  System.Web.Entity (in System.Web.Entity.dll)

public string Select { get; set; }

Property Value

Type: System.String

The parameters that are used for creating the ORDER BY clause.

Exception Condition
InvalidOperationException

When the Select property specifies a query projection and the value of EnableUpdate, EnableDelete, or EnableInsert is true.

The Select property of the EntityDataSource control contains a string that represents the statement of an Entity SQL query. This enables you to project a specified set of properties from the objects returned by the query.

This string is passed, without modification, to the ObjectQuery<T> that is executed by the Entity Framework. This query is the source of the data regulated by the EntityDataSource control. The string supplied to the Select property uses the same format as the string that is passed to the Select method of ObjectQuery<T>. For examples of how to use the clause to define a projection for a query, see How to: Execute a Query that Returns Anonymous Type Objects.

Updates are not supported for projected data. This means that when you use the Select property to specify a projection, the bound data binding does not support updates.

When you define a projection with paging enabled, you must define the property by which to order the results. This means the when you set the Select property to defined a projection and have AutoPage set to true, you must also set the OrderBy property to define the order or set the AutoGenerateOrderByClause property to true and add an ORDER BY parameter to the OrderByParameters collection.

Select cannot be set if EnableUpdate, EnableDelete, or EnableInsert is enabled.

If the Select is set to a query that returns a projection of properties (for example, SELECT p.ProductID, p. Name FROM AdventureWorksEntities.Products AS p), a DbDataRecord will be returned.

The following XML markup uses the Select property to specify a projection with six of the properties of the Product type:

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

The previous XML example is the same as the following ObjectQuery<T> named products:

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

.NET Framework
Available since 3.5
Return to top
Show: