共用方式為


CompiledQuery 類別

定義

表示快取的 LINQ to Entities 查詢。

public ref class CompiledQuery sealed
public sealed class CompiledQuery
type CompiledQuery = class
Public NotInheritable Class CompiledQuery
繼承
CompiledQuery

範例

下列範例會先編譯然後再叫用接受 DateTimeDecimal 輸入參數的查詢,並且傳回訂單序列 (Sequence),其中的訂單日期晚於 2003 年 3 月 8 日,總到期金額則少於 $300.00:

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

備註

提供查詢的編譯和快取以供重複使用。 就概念而言,這個類別 (Class) 包含具有數個多載的單一 Compile 方法。 您可呼叫 Compile 方法來建立新委派 (Delegate) 以表示編譯的查詢。 當使用 ObjectContext 輸入參數和其他參數值叫用 (Invoke) 委派時,會產生某種結果 (例如 IQueryable<T> 執行個體)。 初次叫用委派時,會對查詢進行轉譯及快取。

方法

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>>)

建立新委派以表示編譯的 LINQ to Entities 查詢。

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>>)

建立新委派以表示編譯的 LINQ to Entities 查詢。

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>>)

建立新委派以表示編譯的 LINQ to Entities 查詢。

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>>)

建立新委派以表示編譯的 LINQ to Entities 查詢。

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>>)

建立新委派以表示編譯的 LINQ to Entities 查詢。

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>>)

建立新委派以表示編譯的 LINQ to Entities 查詢。

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>>)

建立新委派以表示編譯的 LINQ to Entities 查詢。

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

建立新委派以表示編譯的 LINQ to Entities 查詢。

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

建立新委派以表示編譯的 LINQ to Entities 查詢。

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

建立新委派以表示編譯的 LINQ to Entities 查詢。

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

建立新委派以表示編譯的 LINQ to Entities 查詢。

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

建立新委派以表示編譯的 LINQ to Entities 查詢。

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

建立新委派以表示編譯的 LINQ to Entities 查詢。

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

建立新委派以表示編譯的 LINQ to Entities 查詢。

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

建立新委派以表示編譯的 LINQ to Entities 查詢。

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

建立新委派以表示編譯的 LINQ to Entities 查詢。

Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetType()

取得目前執行個體的 Type

(繼承來源 Object)
MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
ToString()

傳回代表目前物件的字串。

(繼承來源 Object)

適用於

另請參閱