Freigeben über


ObjectQuery<T>.Distinct Methode

Definition

Schränkt die Abfrage auf eindeutige Ergebnisse ein.

public:
 System::Data::Objects::ObjectQuery<T> ^ Distinct();
public System.Data.Objects.ObjectQuery<T> Distinct ();
member this.Distinct : unit -> System.Data.Objects.ObjectQuery<'T>
Public Function Distinct () As ObjectQuery(Of T)

Gibt zurück

Eine neue ObjectQuery<T>-Instanz, die der ursprünglichen Instanz entspricht, für die jedoch SELECT DISTINCT festgelegt ist.

Beispiele

In diesem Beispiel wird die Methode verwendet UnionAll , um ein neues ObjectQuery<T> Objekt zu erstellen. Anschließend wird Distinct für das neue ObjectQuery<T>-Objekt aufgerufen, um die eindeutigen Ergebnisse dieser Abfrage abzurufen.

int productID = 100;
using (AdventureWorksEntities context =
    new AdventureWorksEntities())
{
    string queryString =
        @"SELECT VALUE product FROM AdventureWorksEntities.Products
            AS product WHERE product.ProductID < @productID";

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

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

    ObjectQuery<Product> productQuery3 =
        productQuery.UnionAll(productQuery2);

    productQuery3.Parameters.Add(new ObjectParameter("productID", productID));

    Console.WriteLine("Result of UnionAll");
    Console.WriteLine("------------------");

    // Iterate through the collection of Product items,
    // after the UnionAll method was called on two queries.
    foreach (Product result in productQuery3)
    {
        Console.WriteLine("Product Name: {0}", result.ProductID);
    }
    ObjectQuery<Product> productQuery4 = productQuery3.Distinct();

    Console.WriteLine("\nResult of Distinct");
    Console.WriteLine("------------------");

    // Iterate through the collection of Product items.
    // after the Distinct method was called on a query.
    foreach (Product result in productQuery4)
        Console.WriteLine("Product Name: {0}", result.ProductID);
}

Hinweise

Diese Abfrage-Generator-Methode gibt eine ObjectQuery<T> Instanz zurück, die der ursprünglichen Abfrage mit SELECT DISTINCT entspricht.

Der DISTINCT Operator kann nicht auf ein Objekt angewendet werden, das eine Zuordnung zu einer nicht vergleichbaren Spalte in der Datenquelle (z. B. ntext) enthält.

Gilt für:

Weitere Informationen