ObjectQuery<T>.Union(ObjectQuery<T>) Método

Definición

Combina los resultados de la consulta con los resultados de otra consulta de objeto, sin duplicados.

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)

Parámetros

query
ObjectQuery<T>

que ObjectQuery<T> representa los resultados que se van a agregar.

Devoluciones

Nueva ObjectQuery<T> instancia equivalente a la instancia original con UNION aplicada para agregar los resultados del especificado query.

Excepciones

El query parámetro es null.

Ejemplos

En este ejemplo se usa Union el método para crear un nuevo ObjectQuery<T> objeto.

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

Comentarios

Union agrega los resultados del proporcionado query sin duplicados.

El proporcionado query que define los resultados que se van a agregar debe ser del mismo tipo o de un tipo que se puede promover al tipo de este ObjectQuery<T>. Por ejemplo, lo siguiente es válido porque DiscontinuedProducts se puede promover a Products:

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

A continuación se producirá una excepción porque Products no se puede promover a DiscontinuedProducts.

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

Para un ObjectQuery<T> de tipo DbDataRecord, los registros de ambas consultas deben tener el mismo número de columnas y los tipos de las DbDataRecord columnas del objeto pasado query deben ser promotables a los tipos de las columnas de DbDataRecord de ObjectQuery<T>.

Los parámetros definidos en el proporcionado query se combinan con parámetros definidos en la ObjectQuery<T> instancia de . Los parámetros deben ser únicos en el combinado ObjectParameterCollection. No puede haber dos parámetros en la colección combinada con el mismo nombre. Para obtener más información, vea Métodos del Generador de consultas.

La consulta resultante hereda la conexión de la instancia en la ObjectQuery<T> que Union se llamó.

Se aplica a

Consulte también