This documentation is archived and is not being maintained.

ObjectQuery<T>.Select Method

Limits the query results to only the properties that are defined in the specified projection.

Namespace:  System.Data.Objects
Assembly:  System.Data.Entity (in System.Data.Entity.dll)

public ObjectQuery<DbDataRecord> Select(
	string projection,
	params ObjectParameter[] parameters
)

Parameters

projection
Type: System.String

The list of selected properties that defines the projection.

parameters
Type: System.Data.Objects.ObjectParameter[]

Zero or more parameters that are used in this method.

Return Value

Type: System.Data.Objects.ObjectQuery<DbDataRecord>
A new ObjectQuery<T> instance of type DbDataRecord that is equivalent to the original instance with SELECT applied.

ExceptionCondition
ArgumentNullException

projection is null.

-or-

parameters is null.

ArgumentException

The projection is an empty string.

Select applies the projection specified by the projection parameter. The ObjectQuery<T> returned by the Select method is always a row type of DbDataRecord. Use the SelectValue<TResultType> method to return values that are simple types, entity types, or complex types. For more information, see Object Queries (Entity Framework).

When a navigation property is included in the projection, the query results include a collection of nested DbDataRecord objects. For more information, see How to: Navigate Relationships Using Navigation Properties (Entity Framework).

This example is based on the Adventure Works Sales Model. The example creates a new ObjectQuery<T> whose results are data records that contain the ProductID fields of the results of this query.

using (AdventureWorksEntities advWorksContext =
    new AdventureWorksEntities())
{
    try
    {
        string queryString = @"SELECT VALUE Product FROM 
            AdventureWorksEntities.Product AS Product
            WHERE Product.ProductID > 900";

        ObjectQuery<Product> productQuery1 =
            new ObjectQuery<Product>(queryString, 
                advWorksContext, MergeOption.NoTracking);

        ObjectQuery<DbDataRecord> productQuery2 = 
            productQuery1.Select("it.ProductID");

        foreach (DbDataRecord result in productQuery2)
        {
            Console.WriteLine("{0}", result["ProductID"]);
        }
    }
    catch (EntitySqlException ex)
    {
        Console.WriteLine(ex.ToString());
    }
}

Windows 7, Windows Vista, Windows XP SP2, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5 SP1
Show: