ObjectQuery<T>.Top(String, ObjectParameter[]) Metoda

Definicja

Ogranicza wyniki zapytania do określonej liczby elementów.Limits the query results to a specified number of items.

public:
 System::Data::Objects::ObjectQuery<T> ^ Top(System::String ^ count, ... cli::array <System::Data::Objects::ObjectParameter ^> ^ parameters);
public System.Data.Objects.ObjectQuery<T> Top (string count, params System.Data.Objects.ObjectParameter[] parameters);
member this.Top : string * System.Data.Objects.ObjectParameter[] -> System.Data.Objects.ObjectQuery<'T>
Public Function Top (count As String, ParamArray parameters As ObjectParameter()) As ObjectQuery(Of T)

Parametry

count
String

Liczba elementów w wynikach jako ciąg.The number of items in the results as a string.

parameters
ObjectParameter[]

Opcjonalny zestaw parametrów zapytania, który powinien znajdować się w zakresie podczas analizowania.An optional set of query parameters that should be in scope when parsing.

Zwraca

Nowe wystąpienie ObjectQuery<T>, które jest równoważne z oryginalnym wystąpieniem z zastosowaniem najwyższego poziomu .A new ObjectQuery<T> instance that is equivalent to the original instance with TOP applied.

Wyjątki

Parametr count ma wartość null.count is null.

count jest ciągiem pustym.count is an empty string.

Przykłady

Przykłady te są oparte na Microsoft SQL Server przykładach produktu: Database.These examples are based on the Microsoft SQL Server Product Samples: Database.

W tym przykładzie tworzony jest nowy ObjectQuery<T>, który zawiera pierwsze dwa wyniki istniejącego zapytania.This example creates a new ObjectQuery<T> that contains the first two results of the existing query.

using (AdventureWorksEntities context =
    new AdventureWorksEntities())
{
    string queryString =
        @"SELECT VALUE product FROM AdventureWorksEntities.Products AS product";

    ObjectQuery<Product> productQuery1 =
        new ObjectQuery<Product>(queryString, context, MergeOption.NoTracking);

    ObjectQuery<Product> productQuery2 = productQuery1.Top("2");

    // Iterate through the collection of Product items.
    foreach (Product result in productQuery2)
        Console.WriteLine("{0}", result.Name);
}
Using context As New AdventureWorksEntities()
    Dim queryString As String = "SELECT VALUE product FROM AdventureWorksEntities.Products AS product"

    Dim productQuery1 As New ObjectQuery(Of Product)(queryString, context, MergeOption.NoTracking)

    Dim productQuery2 As ObjectQuery(Of Product) = productQuery1.Top("2")

    ' Iterate through the collection of Product items. 
    For Each result As Product In productQuery2
        Console.WriteLine("{0}", result.Name)
    Next
End Using

Ten przykład pobiera pięć Product obiektów po pominięciu pierwszych trzech wyników zapytania, posortowanych przez Product.ListPrice.This example gets five Product objects after skipping the first three in the query result, sorted by Product.ListPrice. użyto Top zamiast limitu stronicowania.Top is used instead of LIMIT for paging.

using (AdventureWorksEntities context =
    new AdventureWorksEntities())
{
    // Define the parameters used to define the "page" of returned data.
    int skipValue = 3;
    int limitValue = 5;

    // Define a query that returns a "page" or the full 
    // Product data using the Skip and Top methods. 
    // When Top() follows Skip(), it acts like the LIMIT statement.
    ObjectQuery<Product> query = context.Products
        .Skip("it.ListPrice", "@skip",
                new ObjectParameter("skip", skipValue))
        .Top("@limit", new ObjectParameter("limit", limitValue));

    // Iterate through the page of Product items.
    foreach (Product result in query)
        Console.WriteLine("ID: {0}; Name: {1}",
        result.ProductID, result.Name);
}
Using context As New AdventureWorksEntities()
    ' Define the parameters used to define the "page" of returned data. 
    Dim skipValue As Integer = 3
    Dim limitValue As Integer = 5

    ' Define a query that returns a "page" or the full 
    ' Product data using the Skip and Top methods. 
    ' When Top() follows Skip(), it acts like the LIMIT statement. 
    Dim query As ObjectQuery(Of Product) = _
        context.Products.Skip("it.ListPrice", "@skip", _
            New ObjectParameter("skip", skipValue)).Top("@limit", New ObjectParameter("limit", limitValue))

    ' Iterate through the page of Product items. 
    For Each result As Product In query
        Console.WriteLine("ID: {0}; Name: {1}", result.ProductID, result.Name)
    Next
End Using

Uwagi

Top jest niejednoznaczna, chyba że zapytanie jest sortowane.Top is nondeterministic unless the query is sorted.

Użycie metody Top po metodzie Skip działa podobnie jak w przypadku instrukcji order by .When you use the Top method after the Skip method, it functions like the LIMIT statement of an ORDER BY clause.

Dotyczy

Zobacz też