ObjectQuery<T>.UnionAll(ObjectQuery<T>) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Combine les résultats de la requête avec les résultats d’une autre requête d’objet, y compris tous les doublons.
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)
Paramètres
- query
- ObjectQuery<T>
Qui ObjectQuery<T> représente les résultats à ajouter.
Retours
Nouvelle ObjectQuery<T> instance équivalente à l’instance d’origine avec UNION ALL appliquée pour ajouter les résultats de l’instance spécifiée query.
Exceptions
Le query paramètre est null.
Exemples
Cet exemple utilise la UnionAll méthode pour créer un ObjectQuery<T> objet. Il appelle ensuite la Distinct méthode sur le nouvel ObjectQuery<T> objet pour obtenir les résultats uniques de cette requête.
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);
}
Remarques
UnionAll ajoute les résultats de l’élément fourni query , y compris tous les doublons.
L’élément fourni query qui définit les résultats à ajouter doit être du même type ou d’un type qui peut être promu au type de ce ObjectQuery<T>. Par exemple, les éléments suivants sont valides, car DiscontinuedProducts ils peuvent être promus vers Products:
ObjectQuery<Product>.Union(ObjectQuery<DiscontinuedProduct>)
Les éléments suivants lèvent une exception, car Products elle ne peut pas être promue vers DiscontinuedProducts.
ObjectQuery <DiscontinuedProduct>.Union(ObjectQuery<Product>)
Pour un ObjectQuery<T> typeDbDataRecord, les enregistrements dans les deux requêtes doivent avoir le même nombre de colonnes, et les types dans les colonnes du DbDataRecord passé query doivent être promotables aux types des colonnes dans le .DbDataRecordObjectQuery<T>
Les paramètres définis dans le fichier fourni query sont fusionnés avec les paramètres définis dans l’instance ObjectQuery<T> . Les paramètres doivent être uniques dans la combinaison ObjectParameterCollection. Il ne peut pas y avoir deux paramètres dans la collection combinée portant le même nom. Pour plus d’informations, consultez Méthodes du Générateur de requêtes.
La requête résultante hérite de la connexion de l’instance ObjectQuery<T> sur laquelle UnionAll a été appelée.