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

Definizione

Combina i risultati della query con i risultati di un'altra query oggetto, senza duplicati.

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)

Parametri

query
ObjectQuery<T>

Oggetto ObjectQuery<T> che rappresenta i risultati da aggiungere.

Valori restituiti

ObjectQuery<T> Nuova istanza equivalente all'istanza originale con UNION applicata per aggiungere i risultati dell'oggetto specificatoquery.

Eccezioni

Il query parametro è null.

Esempio

In questo esempio viene Union utilizzato il metodo per creare un nuovo ObjectQuery<T> oggetto .

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

Commenti

Union aggiunge i risultati dell'oggetto query fornito senza duplicati.

L'oggetto fornito che definisce i risultati da aggiungere deve essere dello stesso tipo o di un tipo che può essere alzato query di livello al tipo di .ObjectQuery<T> Ad esempio, il codice seguente è valido perché DiscontinuedProducts può essere alzato di livello a Products:

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

Di seguito verrà generata un'eccezione perché Products non può essere alzata di livello a DiscontinuedProducts.

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

Per un ObjectQuery<T> oggetto di tipo DbDataRecord, i record in entrambe le query devono avere lo stesso numero di colonne e i tipi nelle colonne dell'oggetto DbDataRecord passato query devono essere promuovibili ai tipi delle colonne nell'oggetto DbDataRecordObjectQuery<T>di .

I parametri definiti nell'oggetto fornito query vengono uniti ai parametri definiti nell'istanza ObjectQuery<T> di . I parametri devono essere univoci nell'oggetto combinato ObjectParameterCollection. Nella raccolta combinata non possono essere presenti due parametri con lo stesso nome. Per altre informazioni, vedere Metodi di Generatore query.

La query risultante eredita la connessione dall'istanza ObjectQuery<T> in cui Union è stato chiamato.

Si applica a

Vedi anche