ObjectQuery<T>.Union(ObjectQuery<T>) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Łączy wyniki zapytania z wynikami innego zapytania obiektu bez żadnych duplikatów.
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)
Parametry
- query
- ObjectQuery<T>
Element ObjectQuery<T> reprezentujący wyniki do dodania.
Zwraca
Nowe ObjectQuery<T> wystąpienie, które jest równoważne oryginalnemu wystąpieniu z aplikacją UNION zastosowane w celu dodania wyników określonego queryelementu .
Wyjątki
Parametr query jest null.
Przykłady
W tym przykładzie użyto Union metody do utworzenia nowego ObjectQuery<T> obiektu.
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);
}
}
Uwagi
Union dodaje wyniki dostarczone query bez żadnych duplikatów.
Podany query element definiujący wyniki do dodania musi być tego samego typu lub typu, który może być podwyższony do typu tego ObjectQuery<T>typu . Na przykład następujące elementy są prawidłowe, ponieważ DiscontinuedProducts można awansować do Productselementu :
ObjectQuery<Product>.Union(ObjectQuery<DiscontinuedProduct>)
Poniższe polecenie zgłosi wyjątek, ponieważ Products nie można awansować do DiscontinuedProductselementu .
ObjectQuery <DiscontinuedProduct>.Union(ObjectQuery<Product>)
ObjectQuery<T> W przypadku typu DbDataRecordrekordy w obu zapytaniach muszą mieć taką samą liczbę kolumn, a typy w kolumnach DbDataRecord przekazanego query elementu muszą być promotable do typów kolumn w tabeli DbDataRecordObjectQuery<T>.
Parametry zdefiniowane w podanych parametrach query są scalane z parametrami zdefiniowanymi w wystąpieniu ObjectQuery<T> . Parametry muszą być unikatowe w połączonym ObjectParameterCollectionobiekcie . W połączonej kolekcji nie można mieć dwóch parametrów o tej samej nazwie. Aby uzyskać więcej informacji, zobacz Metody konstruktora zapytań.
Wynikowe zapytanie dziedziczy połączenie z ObjectQuery<T> wystąpienia, na którym Union zostało wywołane.