ObjectQuery(Of T).Select Method (String, ObjectParameter())

 

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 Function Select (
	projection As String,
	ParamArray parameters As ObjectParameter()
) As ObjectQuery(Of DbDataRecord)

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(Of DbDataRecord)

A new ObjectQuery(Of T) instance of type DbDataRecord that is equivalent to the original instance with SELECT applied.

Exception Condition
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(Of T) returned by the Select method is always a row type of DbDataRecord. Use the SelectValue(Of TResultType) method to return values that are simple types, entity types, or complex types. For more information, see Object Queries.

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.

This example is based on the AdventureWorks Sales Model. The example creates a new ObjectQuery(Of T) whose results are data records that contain the ProductID fields of the results of this query.

Dim productID = 900
Using context As New AdventureWorksEntities()
    Dim queryString As String = "SELECT VALUE product FROM AdventureWorksEntities.Products AS product" & _
            " WHERE product.ProductID > @productID"

    Dim productQuery1 As New ObjectQuery(Of Product)(queryString, context, MergeOption.NoTracking)
    productQuery1.Parameters.Add(New ObjectParameter("productID", productID))

    Dim productQuery2 As ObjectQuery(Of DbDataRecord) = productQuery1.Select("it.ProductID")

    For Each result As DbDataRecord In productQuery2
        Console.WriteLine("{0}", result("ProductID"))
    Next
End Using

.NET Framework
Available since 3.5
Return to top
Show: