Aracılığıyla paylaş


ObjectQuery<T>.UnionAll(ObjectQuery<T>) Yöntem

Tanım

Sorgunun sonuçlarını, tüm yinelemeler de dahil olmak üzere başka bir nesne sorgusunun sonuçlarıyla birleştirir.

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)

Parametreler

query
ObjectQuery<T>

ObjectQuery<T> Eklenecek sonuçları temsil eden bir.

Döndürülenler

Belirtilen queryöğesinin sonuçlarını eklemek için UNION ALL uygulanmış özgün örneğe eşdeğer yeni ObjectQuery<T> bir örnek.

Özel durumlar

query parametresidirnull.

Örnekler

Bu örnek, UnionAll yeni ObjectQuery<T> bir nesne oluşturmak için yöntemini kullanır. Ardından bu sorgunun Distinct benzersiz sonuçlarını almak için yeni ObjectQuery<T> nesnede yöntemini çağırır.

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

Açıklamalar

UnionAll tüm yinelemeler dahil olmak üzere sağlanan query sonuçlarını ekler.

Eklenecek sonuçları tanımlayan sağlanan query değerin, bu ObjectQuery<T>türüne yükseltilebilen aynı türde veya türünde olması gerekir. Örneğin, aşağıdakiler geçerli çünkü DiscontinuedProducts olarak yükseltilebilir Products:

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

Aşağıdakiler, 'a yükseltilemediğinden ProductsDiscontinuedProductsbir özel durum oluşturur.

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

türünde DbDataRecordher ObjectQuery<T> iki sorgudaki kayıtların da aynı sayıda sütuna sahip olması ve geçirilen query öğesinin DbDataRecord sütunlarındaki türlerin içindeki sütun DbDataRecordObjectQuery<T>türlerine tanıtılabilir olması gerekir.

Sağlanan query içinde tanımlanan parametreler, örnekte tanımlanan ObjectQuery<T> parametrelerle birleştirilir. Parametrelerin birleştirilmiş ObjectParameterCollectioniçinde benzersiz olması gerekir. Birleştirilmiş koleksiyonda aynı ada sahip iki parametre olamaz. Daha fazla bilgi için bkz. Sorgu Oluşturucu Yöntemleri.

Sonuçta elde edilen sorgu, çağrılan örnekten ObjectQuery<T>UnionAll bağlantıyı devralır.

Şunlara uygulanır

Ayrıca bkz.