ObjectQuery<T>.UnionAll(ObjectQuery<T>) Metode

Definisi

Menggabungkan hasil kueri dengan hasil kueri objek lain, termasuk semua duplikat.

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

Parameter

query
ObjectQuery<T>

ObjectQuery<T> yang mewakili hasil yang akan ditambahkan.

Mengembalikan

Instans baru ObjectQuery<T> yang setara dengan instans asli dengan UNION ALL diterapkan untuk menambahkan hasil dari yang ditentukan query.

Pengecualian

Parameternya query adalah null.

Contoh

Contoh ini menggunakan UnionAll metode untuk membuat objek baru ObjectQuery<T> . Kemudian memanggil Distinct metode pada objek baru ObjectQuery<T> untuk mendapatkan hasil unik dari kueri ini.

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

Keterangan

UnionAll menambahkan hasil yang disediakan query termasuk semua duplikat.

Yang disediakan query yang menentukan hasil yang akan ditambahkan harus berjenis sama atau dari jenis yang dapat dipromosikan ke jenis ini ObjectQuery<T>. Misalnya, berikut ini valid karena DiscontinuedProducts dapat dipromosikan ke Products:

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

Berikut ini akan melemparkan pengecualian karena Products tidak dapat dipromosikan ke DiscontinuedProducts.

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

ObjectQuery<T> Untuk jenis DbDataRecord, rekaman di kedua kueri harus memiliki jumlah kolom yang sama, dan jenis dalam kolom DbDataRecord yang diteruskan harus dapat diproyeksikan query ke jenis kolom di DbDataRecord dari ObjectQuery<T>.

Parameter yang ditentukan dalam yang disediakan query digabungkan dengan parameter yang ditentukan dalam ObjectQuery<T> instans. Parameter harus unik dalam gabungan ObjectParameterCollection. Tidak boleh ada dua parameter dalam koleksi gabungan dengan nama yang sama. Untuk informasi selengkapnya, lihat Metode Pembangun Kueri.

Kueri yang dihasilkan mewarisi koneksi dari ObjectQuery<T> instans yang UnionAll dipanggil.

Berlaku untuk

Lihat juga