CompiledQuery Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Önbelleğe alınmış LINQ to Entities sorgusunu temsil eder.
public ref class CompiledQuery sealed
public sealed class CompiledQuery
type CompiledQuery = class
Public NotInheritable Class CompiledQuery
- Devralma
-
CompiledQuery
Örnekler
Aşağıdaki örnek, parametreleri kabul eden ve Decimal giriş parametrelerini kabul DateTime eden bir sorguyu derleyip çağırır ve sipariş tarihinin 8 Mart 2003'ten sonra olduğu ve toplam son tarihin 300,00 TL'den az olduğu bir sipariş dizisi döndürür:
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
Açıklamalar
Sorguların yeniden kullanılmak üzere derlenmesi ve önbelleğe alınmasını sağlar. Kavramsal olarak bu sınıf, birkaç aşırı yükleme içeren tek Compile
bir yöntem içerir. Derlenen sorguyu Compile
temsil eden yeni bir temsilci oluşturmak için yöntemini çağırırsınız. Temsilci, giriş parametresi ve diğer parametre değerleriyle ObjectContext çağrıldığında bazı sonuçlar (örneğin, bir IQueryable<T> örnek) üretir. Temsilci ilk kez çağrıldığında sorgu çevrilir ve önbelleğe alınır.