CompiledQuery Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Representerar en cachelagrad LINQ till entitetsfråga.
public ref class CompiledQuery sealed
public sealed class CompiledQuery
type CompiledQuery = class
Public NotInheritable Class CompiledQuery
- Arv
-
CompiledQuery
Exempel
I följande exempel kompileras och anropas sedan en fråga som accepterar DateTime och Decimal indataparametrar och returnerar en sekvens med order där orderdatumet är senare än den 8 mars 2003 och den totala förfallodatumet är mindre än 300,00 USD:
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
Kommentarer
Tillhandahåller för kompilering och cachelagring av frågor för återanvändning. Den här klassen innehåller en enda Compile metod med flera överlagringar. Du anropar Compile metoden för att skapa ett nytt ombud som representerar den kompilerade frågan. Ombudet, när det anropas med ObjectContext indataparametern och andra parametervärden, ger ett visst resultat (till exempel en IQueryable<T> instans). Frågan översätts och cachelagras när ombudet anropas för första gången.