Freigeben über


ObjectQuery<T>.Union(ObjectQuery<T>) Methode

Definition

Kombiniert die Ergebnisse der Abfrage mit den Ergebnissen einer anderen Objektabfrage ohne Duplikate.

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

Parameter

query
ObjectQuery<T>

Ein ObjectQuery<T> Wert, der die hinzuzufügenden Ergebnisse darstellt.

Gibt zurück

Eine neue ObjectQuery<T> Instanz, die der ursprünglichen Instanz entspricht, auf die UNION angewendet wird, um die Ergebnisse des angegebenen Elements queryhinzuzufügen.

Ausnahmen

Der query Parameter ist null.

Beispiele

In diesem Beispiel wird Union mit der Methode ein neues ObjectQuery<T> Objekt erstellt.

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.Union(productQuery2);

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

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

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

Hinweise

Union fügt die Ergebnisse der bereitgestellten query ohne Duplikate hinzu.

Die bereitgestellte query Eigenschaft, die die hinzuzufügenden Ergebnisse definiert, muss denselben Typ oder einen Typ aufweisen, der auf den Typ dieses ObjectQuery<T>Werts heraufgestuft werden kann. Beispielsweise ist Folgendes gültig, da DiscontinuedProducts höhergestuft werden kann:Products

ObjectQuery<Product>.Union(ObjectQuery<DiscontinuedProduct>)

Im Folgenden wird eine Ausnahme ausgelöst, da Products sie nicht höhergestuft DiscontinuedProductswerden kann.

ObjectQuery <DiscontinuedProduct>.Union(ObjectQuery<Product>)

Für einen ObjectQuery<T> Typ DbDataRecordmüssen die Datensätze in beiden Abfragen dieselbe Anzahl von Spalten aufweisen, und die Typen in den Spalten der DbDataRecord übergebenen query Daten müssen für die Spaltentypen der DbDataRecord übergebenen ObjectQuery<T>Elemente verfügbar sein.

Parameter, die in der angegebenen query Datei definiert sind, werden mit Parametern zusammengeführt, die in der ObjectQuery<T> Instanz definiert sind. Parameter müssen in kombinationen ObjectParameterCollectioneindeutig sein. Es können nicht zwei Parameter in der kombinierten Auflistung mit demselben Namen vorhanden sein. Weitere Informationen finden Sie unter Abfrage-Generator-Methoden.

Die resultierende Abfrage erbt die Verbindung von der Instanz, für die ObjectQuery<T>Union aufgerufen wurde.

Gilt für:

Weitere Informationen