ObjectQuery<T>.UnionAll(ObjectQuery<T>) Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Combina os resultados da consulta com os resultados de outra consulta de objeto, incluindo todos os duplicados.
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)
Parâmetros
- query
- ObjectQuery<T>
Um ObjectQuery<T> que representa os resultados a adicionar.
Devoluções
Uma nova ObjectQuery<T> instância que é equivalente à instância original com UNION ALL aplicada para adicionar os resultados do especificado query.
Exceções
O query parâmetro é null.
Exemplos
Este exemplo utiliza o UnionAll método para criar um novo ObjectQuery<T> objeto. Depois, chama o Distinct método no novo ObjectQuery<T> objeto para obter os resultados únicos dessa consulta.
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);
}
Observações
UnionAll Adiciona os resultados do fornecido query , incluindo todos os duplicados.
O fornecido query que define os resultados a adicionar deve ser do mesmo tipo ou de um tipo que possa ser promovido ao tipo deste ObjectQuery<T>. Por exemplo, o seguinte é válido porque DiscontinuedProducts pode ser promovido para Products:
ObjectQuery<Product>.Union(ObjectQuery<DiscontinuedProduct>)
O seguinte lançará uma exceção porque Products não pode ser promovido para DiscontinuedProducts.
ObjectQuery <DiscontinuedProduct>.Union(ObjectQuery<Product>)
Para um ObjectQuery<T> de tipo DbDataRecord, os registos em ambas as consultas devem ter o mesmo número de colunas, e os tipos nas colunas de o DbDataRecord passado query devem ser promovíveis aos tipos das colunas em o DbDataRecordObjectQuery<T>de .
Os parâmetros definidos no fornecido query são fundidos com os parâmetros definidos na ObjectQuery<T> instância. Os parâmetros devem ser únicos na combinação ObjectParameterCollectionde . Não podem existir dois parâmetros na coleção combinada com o mesmo nome. Para mais informações, consulte Métodos do Construtor de Consultas.
A consulta resultante herda a ligação da ObjectQuery<T> instância em que UnionAll foi chamada.