Condividi tramite


CompiledQuery Classe

Definizione

Rappresenta una query LINQ to Entities memorizzata nella cache.

public ref class CompiledQuery sealed
public sealed class CompiledQuery
type CompiledQuery = class
Public NotInheritable Class CompiledQuery
Ereditarietà
CompiledQuery

Esempio

Nell'esempio seguente viene compilata e quindi richiamata una query che accetta parametri di input DateTime e Decimal e restituisce una sequenza di ordini in cui la data di ordine è successiva all'8 marzo 2003 e il totale dovuto è inferiore a 300,00 dollari:

static readonly Func<AdventureWorksEntities, DateTime, Decimal, IQueryable<SalesOrderHeader>> s_compiledQuery5 =
    CompiledQuery.Compile<AdventureWorksEntities, DateTime, Decimal, IQueryable<SalesOrderHeader>>(
            (ctx, orderDate, totalDue) => from product in ctx.SalesOrderHeaders
                                          where product.OrderDate > orderDate
                                             && product.TotalDue < totalDue
                                          orderby product.OrderDate
                                          select product);

static void CompiledQuery5()
{
    using (AdventureWorksEntities context = new AdventureWorksEntities())
    {
        DateTime date = new DateTime(2003, 3, 8);
        Decimal amountDue = 300.00M;

        IQueryable<SalesOrderHeader> orders = s_compiledQuery5.Invoke(context, date, amountDue);

        foreach (SalesOrderHeader order in orders)
        {
            Console.WriteLine("ID: {0} Order date: {1} Total due: {2}", order.SalesOrderID, order.OrderDate, order.TotalDue);
        }
    }
}
ReadOnly s_compQuery5 = _
   CompiledQuery.Compile(Of AdventureWorksEntities, DateTime, Decimal, IQueryable(Of SalesOrderHeader))( _
                Function(ctx, orderDate, totalDue) From product In ctx.SalesOrderHeaders _
                                                   Where product.OrderDate > orderDate _
                                                      And product.TotalDue < totalDue _
                                                   Order By product.OrderDate _
                                                   Select product)
Sub CompiledQuery5()

    Using context As New AdventureWorksEntities()

        Dim orderedAfterDate As DateTime = New DateTime(2003, 3, 8)
        Dim amountDue As Decimal = 300.0

        Dim orders As IQueryable(Of SalesOrderHeader) = _
            s_compQuery5.Invoke(context, orderedAfterDate, amountDue)

        For Each order In orders
            Console.WriteLine("ID: {0} Order date: {1} Total due: {2}", _
                              order.SalesOrderID, order.OrderDate, order.TotalDue)
        Next

    End Using
End Sub

Commenti

Consente di compilare e memorizzare nella cache le query da riutilizzare. A livello concettuale questa classe contiene un singolo metodo Compile con diversi overload. Il metodo Compile viene chiamato per creare un nuovo delegato che rappresenti la query compilata. Il delegato, se richiamato con il parametro di input ObjectContext e gli altri valori di parametro, produce un risultato, ad esempio un'istanza di IQueryable<T>. La query viene convertita e memorizzata nella cache quando il delegato viene richiamato per la prima volta.

Metodi

Compile<TArg0,TArg1,TArg2,TArg3,TArg4,TArg5,TArg6,TArg7,TArg8, TArg9,TArg10,TArg11,TArg12,TArg13,TArg14,TArg15,TResult>(Expression<Func<TArg0, TArg1,TArg2,TArg3,TArg4,TArg5,TArg6,TArg7,TArg8,TArg9,TArg10, TArg11,TArg12,TArg13,TArg14,TArg15,TResult>>)

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

Compile<TArg0,TArg1,TArg2,TArg3,TArg4,TArg5,TArg6,TArg7,TArg8, TArg9,TArg10,TArg11,TArg12,TArg13,TArg14,TResult>(Expression<Func<TArg0, TArg1,TArg2,TArg3,TArg4,TArg5,TArg6,TArg7,TArg8,TArg9,TArg10, TArg11,TArg12,TArg13,TArg14,TResult>>)

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

Compile<TArg0,TArg1,TArg2,TArg3,TArg4,TArg5,TArg6,TArg7,TArg8, TArg9,TArg10,TArg11,TArg12,TArg13,TResult>(Expression<Func<TArg0, TArg1,TArg2,TArg3,TArg4,TArg5,TArg6,TArg7,TArg8,TArg9,TArg10, TArg11,TArg12,TArg13,TResult>>)

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

Compile<TArg0,TArg1,TArg2,TArg3,TArg4,TArg5,TArg6,TArg7,TArg8, TArg9,TArg10,TArg11,TArg12,TResult>(Expression<Func<TArg0,TArg1, TArg2,TArg3,TArg4,TArg5,TArg6,TArg7,TArg8,TArg9,TArg10,TArg11, TArg12,TResult>>)

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

Compile<TArg0,TArg1,TArg2,TArg3,TArg4,TArg5,TArg6,TArg7,TArg8, TArg9,TArg10,TArg11,TResult>(Expression<Func<TArg0,TArg1,TArg2, TArg3,TArg4,TArg5,TArg6,TArg7,TArg8,TArg9,TArg10,TArg11,TResult>>)

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

Compile<TArg0,TArg1,TArg2,TArg3,TArg4,TArg5,TArg6,TArg7,TArg8, TArg9,TArg10,TResult>(Expression<Func<TArg0,TArg1,TArg2,TArg3, TArg4,TArg5,TArg6,TArg7,TArg8,TArg9,TArg10,TResult>>)

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

Compile<TArg0,TArg1,TArg2,TArg3,TArg4,TArg5,TArg6,TArg7,TArg8, TArg9,TResult>(Expression<Func<TArg0,TArg1,TArg2,TArg3,TArg4, TArg5,TArg6,TArg7,TArg8,TArg9,TResult>>)

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

Compile<TArg0,TArg1,TArg2,TArg3,TArg4,TArg5,TArg6,TArg7,TArg8, TResult>(Expression<Func<TArg0,TArg1,TArg2,TArg3,TArg4,TArg5, TArg6,TArg7,TArg8,TResult>>)

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

Compile<TArg0,TArg1,TArg2,TArg3,TArg4,TArg5,TArg6,TArg7,TResult>(Expression<Func<TArg0,TArg1,TArg2,TArg3,TArg4,TArg5,TArg6,TArg7,TResult>>)

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

Compile<TArg0,TArg1,TArg2,TArg3,TArg4,TArg5,TArg6,TResult>(Expression<Func<TArg0,TArg1,TArg2,TArg3,TArg4,TArg5,TArg6,TResult>>)

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

Compile<TArg0,TArg1,TArg2,TArg3,TArg4,TArg5,TResult>(Expression<Func<TArg0,TArg1,TArg2,TArg3,TArg4,TArg5,TResult>>)

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

Compile<TArg0,TArg1,TArg2,TArg3,TArg4,TResult>(Expression<Func<TArg0,TArg1,TArg2,TArg3,TArg4,TResult>>)

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

Compile<TArg0,TArg1,TArg2,TArg3,TResult>(Expression<Func<TArg0,TArg1,TArg2,TArg3,TResult>>)

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

Compile<TArg0,TArg1,TArg2,TResult>(Expression<Func<TArg0,TArg1,TArg2,TResult>>)

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

Compile<TArg0,TArg1,TResult>(Expression<Func<TArg0,TArg1,TResult>>)

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

Compile<TArg0,TResult>(Expression<Func<TArg0,TResult>>)

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

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a

Vedi anche