This documentation is archived and is not being maintained.

ObjectQuery<T> Constructor (String, ObjectContext, MergeOption)

Creates a new ObjectQuery<T> instance using the specified Entity SQL command as the initial query and the specified merge option.

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

public ObjectQuery(
	string commandText,
	ObjectContext context,
	MergeOption mergeOption


Type: System.String

The Entity SQL query.

Type: System.Data.Objects.ObjectContext

The ObjectContext on which to execute the query.

Type: System.Data.Objects.MergeOption

Specifies how the entities that are retrieved through this query should be merged with the entities that have been returned from previous queries against the same ObjectContext.

ObjectQuery<T> can be initialized in such a way that it represents a single scalar result and not a collection of scalar results. Some extension methods require collection results as input. In this case, an ArgumentException is thrown when one of these methods is called. For more information, see Object Queries (Entity Framework).

When your application generates Entity SQL queries at runtime, you should be aware of any command length limitations of the data source. Entity SQL does not enforce limitations on the length of the command text in queries.

This example is based on the Adventure Works Sales Model. The ObjectQuery<T> is initialized with the specified query, ObjectContext, and MergeOption.

using (AdventureWorksEntities advWorksContext =
    new AdventureWorksEntities())
        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 = 

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

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