Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

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

 

Data di pubblicazione: ottobre 2016

Crea un nuovo delegato che rappresenta la query LINQ to Entities compilata.

Spazio dei nomi:   System.Data.Objects
Assembly:  System.Data.Entity (in System.Data.Entity.dll)

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

Parametri

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

Espressione lambda da compilare.

Valore restituito

Type: System.Func<TArg0, TArg1, TResult>

Func<T1, T2, TResult>, un delegato generico che rappresenta la query LINQ to Entities compilata.

Parametri tipo

TArg0

Un tipo derivato da ObjectContext.

TArg1

Rappresenta il tipo del parametro che deve essere passato quando viene eseguito il delegato restituito da questo metodo. TArg1deve essere un tipo primitivo.

TResult

Il tipo di T dei risultati della query restituiti eseguendo il delegato restituito dal Compile<TArg0, TArg1, TResult> metodo.

Per ulteriori informazioni ed esempi, vedere query compilate (LINQ to Entities).

Nell'esempio seguente viene compilata e quindi richiamata una query che accetta un parametro di input Decimal e restituisce una sequenza di ordini in cui il totale dovuto è maggiore o uguale a 200,00 dollari:

static readonly Func<AdventureWorksEntities, Decimal, IQueryable<SalesOrderHeader>> s_compiledQuery2 = 
    CompiledQuery.Compile<AdventureWorksEntities, Decimal, IQueryable<SalesOrderHeader>>(
            (ctx, total) => from order in ctx.SalesOrderHeaders
                            where order.TotalDue >= total
                            select order);

static void CompiledQuery2()
{            
    using (AdventureWorksEntities context = new AdventureWorksEntities())
    {
        Decimal totalDue = 200.00M;

        IQueryable<SalesOrderHeader> orders = s_compiledQuery2.Invoke(context, totalDue);

        foreach (SalesOrderHeader order in orders)
        {
            Console.WriteLine("ID: {0}  Order date: {1} Total due: {2}",
                order.SalesOrderID,
                order.OrderDate,
                order.TotalDue);
        }
    }            
}

.NET Framework
Disponibile da 3.5
Torna all'inizio
Mostra: