ObjectQuery<T>.Intersect(ObjectQuery<T>) ObjectQuery<T>.Intersect(ObjectQuery<T>) ObjectQuery<T>.Intersect(ObjectQuery<T>) ObjectQuery<T>.Intersect(ObjectQuery<T>) Method

Definition

Schränkt die Abfrageergebnisse ein, indem nur die Ergebnisse eingeschlossen werden, die in einer anderen Objektabfrage vorhanden sind.Limits the query results by including only the results that exist in another object query.

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)

Parameter

query
ObjectQuery<T> ObjectQuery<T> ObjectQuery<T> ObjectQuery<T>

Eine ObjectQuery<T>, die die in die Abfrage einzuschließenden Ergebnisse darstellt.An ObjectQuery<T> that represents the results to include in the query.

Gibt zurück

Eine neue ObjectQuery<T>-Instanz, die der ursprünglichen Instanz entspricht, für die INTERSECT auf Grundlage der angegebenen query festgelegt ist.A new ObjectQuery<T> instance that is equivalent to the original instance with INTERSECT applied based on the specified query.

Ausnahmen

Der query-Parameter ist null oder eine leere Zeichenfolge.The query parameter is null or is an empty string.

Beispiele

Das Beispiel in diesem Thema basiert auf dem AdventureWorks Sales-Modell.The example in this topic is based on the AdventureWorks Sales Model. In diesem Beispiel wird ein neues ObjectQuery<T>-Objekt erstellt, das die Ergebnisse von zwei anderen Abfragen enthält.This example creates a new ObjectQuery<T> object that contains the results of two other queries.

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

Hinweise

Der bereit query gestellte, der die einzuschließenden Ergebnisse definiert, muss vom gleichen Typ oder von einem Typ sein, ObjectQuery<T>der mit kompatibel ist.The supplied query that defines results to include must be of the same type or of a type that is compatible with the ObjectQuery<T>.

Parameter, die in der angegebenen query definiert sind, werden mit Parametern zusammengeführt, die in der ObjectQuery<T> -Instanz definiert sind.Parameters that are defined in the supplied query are merged with parameters that are defined in the ObjectQuery<T> instance. Parameter müssen in der kombinierten ObjectParameterCollection eindeutig sein.Parameters must be unique in the combined ObjectParameterCollection. In der kombinierten Auflistung dürfen sich nicht zwei Parameter mit demselben Namen befinden.There cannot be two parameters in the combined collection with the same name. Weitere Informationen finden Sie unter Abfrage-Generator-Methoden.For more information, see Query Builder Methods.

Die resultierende Abfrage erbt die Verbindung von der ObjectQuery<T>-Instanz, für die die Intersect-Methode aufgerufen wurde.The resulting query inherits the connection from the ObjectQuery<T> instance on which the Intersect method was called.

Gilt für:

Siehe auch