ObjectQuery<T>.Intersect(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.
Ogranicza wyniki zapytania, uwzględniając tylko wyniki istniejące w innym zapytaniu obiektu.
public:
System::Data::Objects::ObjectQuery<T> ^ Intersect(System::Data::Objects::ObjectQuery<T> ^ query);
public System.Data.Objects.ObjectQuery<T> Intersect (System.Data.Objects.ObjectQuery<T> query);
member this.Intersect : System.Data.Objects.ObjectQuery<'T> -> System.Data.Objects.ObjectQuery<'T>
Public Function Intersect (query As ObjectQuery(Of T)) As ObjectQuery(Of T)
Parametry
- query
- ObjectQuery<T>
Element ObjectQuery<T> reprezentujący wyniki do uwzględnienia w zapytaniu.
Zwraca
Nowe ObjectQuery<T> wystąpienie, które jest równoważne oryginalnemu wystąpieniu z zastosowaniem INTERSECT na podstawie określonego queryelementu .
Wyjątki
Parametr query jest null lub jest pustym ciągiem.
Przykłady
Przykład w tym temacie jest oparty na Microsoft SQL Server Przykłady produktów: baza danych. W tym przykładzie zostanie utworzony nowy ObjectQuery<T> obiekt zawierający wyniki dwóch innych zapytań.
int productID1 = 900;
int productID2 = 950;
using (AdventureWorksEntities context =
new AdventureWorksEntities())
{
string queryString = @"SELECT VALUE product
FROM AdventureWorksEntities.Products
AS product WHERE product.ProductID > @productID1";
ObjectQuery<Product> productQuery =
new ObjectQuery<Product>(queryString,
context, MergeOption.NoTracking);
string queryString2 = @"SELECT VALUE product
FROM AdventureWorksEntities.Products
AS product WHERE product.ProductID > @productID2";
ObjectQuery<Product> productQuery2 =
new ObjectQuery<Product>(queryString2,
context, MergeOption.NoTracking);
ObjectQuery<Product> productQuery3 =
productQuery.Intersect(productQuery2);
productQuery3.Parameters.Add(new ObjectParameter("productID1", productID1));
productQuery3.Parameters.Add(new ObjectParameter("productID2", productID2));
Console.WriteLine("Result of Intersect");
Console.WriteLine("------------------");
// Iterate through the collection of Product items
// after the Intersect method was called.
foreach (Product result in productQuery3)
{
Console.WriteLine("Product Name: {0}", result.ProductID);
}
}
Dim productID1 = 900
Dim productID2 = 950
Using context As New AdventureWorksEntities()
Dim queryString As String = "SELECT VALUE product FROM AdventureWorksEntities.Products " & _
" AS product WHERE product.ProductID > @productID1"
Dim productQuery As New ObjectQuery(Of Product)(queryString, context, MergeOption.NoTracking)
Dim queryString2 As String = "SELECT VALUE product FROM AdventureWorksEntities.Products " & _
" AS product WHERE product.ProductID > @productID2"
Dim productQuery2 As New ObjectQuery(Of Product)(queryString2, context, MergeOption.NoTracking)
Dim productQuery3 As ObjectQuery(Of Product) = productQuery.Intersect(productQuery2)
productQuery3.Parameters.Add(New ObjectParameter("productID1", productID1))
productQuery3.Parameters.Add(New ObjectParameter("productID2", productID2))
Console.WriteLine("Result of Intersect")
Console.WriteLine("------------------")
' Iterate through the collection of Product items
' after the Intersect method was called.
For Each result As Product In productQuery3
Console.WriteLine("Product Name: {0}", result.ProductID)
Next
End Using
Uwagi
Podany, query który definiuje wyniki do uwzględnienia, musi być tego samego typu lub typu, który jest zgodny z ObjectQuery<T>.
Parametry zdefiniowane w zestawie query są scalane z parametrami zdefiniowanymi w wystąpieniu ObjectQuery<T> . Parametry muszą być unikatowe w połączeniu ObjectParameterCollection. Nie można mieć dwóch parametrów w połączonej kolekcji o tej samej nazwie. Aby uzyskać więcej informacji, zobacz Metody konstruktora zapytań.
Wynikowe zapytanie dziedziczy połączenie z wystąpieniem ObjectQuery<T> , na którym wywoływano metodę Intersect .