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

Definizione

Combina i risultati della query con i risultati di un'altra query di oggetto senza duplicati.Combines the results of the query with the results of another object query, without any duplicates.

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> ObjectQuery<T> ObjectQuery<T> ObjectQuery<T>

Oggetto ObjectQuery<T> che rappresenta i risultati da aggiungere.An ObjectQuery<T> that represents the results to add.

Restituisce

Nuova istanza di ObjectQuery<T> equivalente all'istanza originale con l'operatore UNION applicato per aggiungere i risultati del parametro query specificato.A new ObjectQuery<T> instance that is equivalent to the original instance with UNION applied to add the results of the specified query.

Eccezioni

Il valore del parametro query è null.The query parameter is null.

Esempi

Questo esempio è basato sul modello Sales di AdventureWorks.This example is based on the AdventureWorks Sales Model. Nell'esempio viene utilizzato il metodo Union per creare un nuovo oggetto ObjectQuery<T>.The example uses Union method to creates a new ObjectQuery<T> object.

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);
    }
}
Dim productID = 100
Using context As New AdventureWorksEntities()
    Dim queryString As String = "SELECT VALUE product FROM AdventureWorksEntities.Products AS product " & _
            " WHERE product.ProductID < @productID"
    Dim productQuery As New ObjectQuery(Of Product)(queryString, context, MergeOption.NoTracking)

    Dim productQuery2 As New ObjectQuery(Of Product)(queryString, context, MergeOption.NoTracking)

    Dim productQuery3 As ObjectQuery(Of Product) = 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. 
    For Each result As Product In productQuery3
        Console.WriteLine("Product Name: {0}", result.ProductID)
    Next
End Using

Commenti

Unionaggiunge i risultati dell'oggetto fornito query senza duplicati.Union adds the results of the supplied query without any duplicates.

Il parametro query fornito che definisce i risultati da aggiungere deve essere dello stesso tipo o di un tipo che può essere innalzato al tipo di questo ObjectQuery<T>oggetto.The supplied query that defines the results to add must be of the same type or of a type that can be promoted to the type of this ObjectQuery<T>. Ad esempio, il codice seguente è valido DiscontinuedProducts perché può essere promosso a: ProductsFor example, the following is valid because DiscontinuedProducts can be promoted to Products:

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

Il codice seguente genererà un'eccezione Products perché non può essere DiscontinuedProductsinnalzato a.The following will throw an exception because Products cannot be promoted to DiscontinuedProducts.

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

Per un ObjectQuery<T> oggetto di DbDataRecordtipo, i record in entrambe le query devono avere lo stesso numero di colonne e i tipi DbDataRecord nelle colonne dell'oggetto del passato query devono essere promuovibili ai tipi delle colonne nell'oggetto DbDataRecord del ObjectQuery<T>.For an ObjectQuery<T> of type DbDataRecord, the records in both queries must have the same number of columns, and the types in the columns of the DbDataRecord of the passed query must be promotable to the types of the columns in the DbDataRecord of the ObjectQuery<T>.

I parametri definiti nell'oggetto fornito query vengono uniti con i parametri definiti ObjectQuery<T> nell'istanza di.Parameters that are defined in the supplied query are merged with parameters that are defined in the ObjectQuery<T> instance. I parametri devono essere univoci nell'oggetto ObjectParameterCollection combinato.Parameters must be unique in the combined ObjectParameterCollection. Nella raccolta combinata non possono essere presenti due parametri con lo stesso nome.There cannot be two parameters in the combined collection with the same name. Per ulteriori informazioni, vedere Generatore di query Methods.For more information, see Query Builder Methods.

La query risultante eredita la connessione dall'istanza di ObjectQuery<T> su cui è stato chiamato il metodo Union.The resulting query inherits the connection from the ObjectQuery<T> instance on which Union was called.

Si applica a

Vedi anche