Export (0) Print
Expand All

ObjectQuery<T>.SelectValue<TResultType> Method

Limits the query results to only the property specified in the projection.

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

public ObjectQuery<TResultType> SelectValue<TResultType>(
	string projection,
	params ObjectParameter[] parameters
)

Type Parameters

TResultType

The type of the ObjectQuery<T> returned by the SelectValue<TResultType> method.

Parameters

projection
Type: System.String

The projection list.

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

An optional set of query parameters that should be in scope when parsing.

Return Value

Type: System.Data.Objects.ObjectQuery<TResultType>
A new ObjectQuery<T> instance of a type compatible with the specific projection. The returned ObjectQuery<T> is equivalent to the original instance with SELECT VALUE applied.

ExceptionCondition
ArgumentNullException

projection is null.

-or-

parameters is null.

ArgumentException

The projection is an empty string.

SelectValue<TResultType> is used to return values that are simple types, entity types, or complex types. Use the Select method for projections that require a row type instead of a value type. For more information, see Object Queries (Entity Framework).

The SelectValue<TResultType> method applies the projection specified by the projection parameter. The ObjectQuery<T> returned by the SelectValue<TResultType> method must be of a value type that is compatible with the projection and must be the same type as the type of SelectValue<TResultType>.

This example is based on the Adventure Works Sales Model. The example creates a new ObjectQuery<T> that contains results that are a sequence of ProductID values projected from the results of the existing query.

using (AdventureWorksEntities context =
    new AdventureWorksEntities())
{
    string queryString =
        @"SELECT VALUE product FROM 
            AdventureWorksEntities.Products AS product";

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

    ObjectQuery<Int32> productQuery2 =
        productQuery1.SelectValue<Int32>("it.ProductID");

    foreach (Int32 result in productQuery2)
    {
        Console.WriteLine("{0}", result);
    }
}

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5 SP1

.NET Framework Client Profile

Supported in: 4
Show:
© 2015 Microsoft