Sdílet prostřednictvím


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

Definice

Zkombinuje výsledky dotazu s výsledky jiného objektového dotazu bez duplicit.

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)

Parametry

query
ObjectQuery<T>

Představuje ObjectQuery<T> výsledky, které se mají přidat.

Návraty

Nová ObjectQuery<T> instance, která je ekvivalentní původní instanci s použitým nástrojem UNION pro přidání výsledků zadané queryinstance .

Výjimky

Parametr query je null.

Příklady

Tento příklad používá Union metodu k vytvoření nového ObjectQuery<T> objektu.

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);
    }
}

Poznámky

Union přidá výsledky zadaného query bez duplicit.

Zadaný, query který definuje výsledky, které se mají přidat, musí být stejného typu nebo typu, který může být povýšen na typ tohoto ObjectQuery<T>. Například následující hodnota je platná, protože DiscontinuedProducts může být povýšena na Products:

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

Následující příkaz vyvolá výjimku, protože Products nelze zvýšit úroveň na DiscontinuedProducts.

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

ObjectQuery<T> U typu DbDataRecordmusí mít záznamy v obou dotazech stejný počet sloupců a typy ve sloupcích DbDataRecord předávaného query musí být propagační na typy sloupců v DbDataRecord objektu ObjectQuery<T>.

Parametry, které jsou definovány v zadaném souboru query , jsou sloučeny s parametry, které jsou definovány v ObjectQuery<T> instanci. Parametry musí být jedinečné v kombinovaném ObjectParameterCollectionparametru . V kombinované kolekci nemohou být dva parametry se stejným názvem. Další informace najdete v tématu Metody Tvůrce dotazů.

Výsledný dotaz zdědí připojení z ObjectQuery<T> instance, na které Union bylo voláno.

Platí pro

Viz také