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>

Eine ObjectQuery<T>, die die hinzuzufügenden Ergebnisse darstellt.

Gibt zurück

Eine neue ObjectQuery<T>-Instanz, die der ursprünglichen Instanz entspricht, für die jedoch UNION festgelegt ist, um die Ergebnisse der angegebenen query hinzuzufügen.

Ausnahmen

Der query-Parameter ist null.

Beispiele

In diesem Beispiel wird die -Methode verwendet Union , um ein neues ObjectQuery<T> -Objekt zu erstellen.

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 angegebenen query ohne Duplikate hinzu.

Die angegebene query , die die hinzuzufügenden Ergebnisse definiert, muss vom gleichen Typ oder von einem Typ sein, der in den Typ dieses ObjectQuery<T>höher gestuft werden kann. Beispielsweise ist Folgendes gültig, da DiscontinuedProducts zu Productsheraufgestuft werden kann:

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

Im Folgenden wird eine Ausnahme ausgelöst, da Products nicht zu DiscontinuedProductsheraufgestuft werden kann.

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

Für ein ObjectQuery<T> vom Typ DbDataRecordmüssen die Datensätze in beiden Abfragen die gleiche Anzahl von Spalten aufweisen, und die Typen in den Spalten des DbDataRecord übergebenen query müssen auf die Typen der Spalten in der DbDataRecordObjectQuery<T>der heraufstufbar sein.

Parameter, die in der angegebenen query definiert sind, werden mit Parametern zusammengeführt, die in der ObjectQuery<T> -Instanz definiert sind. Parameter müssen in der kombinierten ObjectParameterCollection eindeutig sein. In der kombinierten Auflistung dürfen sich nicht zwei Parameter mit demselben Namen befinden. Weitere Informationen finden Sie unter Abfrage-Generator-Methoden.

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

Gilt für:

Weitere Informationen