CompiledQuery.Compile<TArg0, TResult> Method (Expression<Func<TArg0, TResult>>)


Creates a new delegate that represents the compiled LINQ to Entities query.

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

public static Func<TArg0, TResult> Compile<TArg0, TResult>(
	Expression<Func<TArg0, TResult>> query
where TArg0 : ObjectContext


Type: System.Linq.Expressions.Expression<Func<TArg0, TResult>>

The lambda expression to compile.

Return Value

Type: System.Func<TArg0, TResult>

Func<T, TResult>, a generic delegate that represents the compiled LINQ to Entities query.

Type Parameters


A type derived from ObjectContext.


The type T of the query results returned by executing the delegate returned by the Compile<TArg0, TResult> method.

For more information and examples, see Compiled Queries (LINQ to Entities).

The following example compiles and then invokes a query that returns an ObjectQuery<T> instance:

static readonly Func<AdventureWorksEntities, ObjectQuery<SalesOrderHeader>> s_compiledQuery1 = 
    CompiledQuery.Compile<AdventureWorksEntities, ObjectQuery<SalesOrderHeader>>(
            ctx => ctx.SalesOrderHeaders);

static void CompiledQuery1_MQ()

    using (AdventureWorksEntities context = new AdventureWorksEntities())
        IQueryable<SalesOrderHeader> orders = s_compiledQuery1.Invoke(context);

        foreach (SalesOrderHeader order in orders)

.NET Framework
Available since 3.5
Return to top