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

Definition

Begränsar frågeresultatet genom att endast inkludera de resultat som finns i en annan objektfråga.

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)

Parametrar

query
ObjectQuery<T>

En ObjectQuery<T> som representerar resultatet som ska inkluderas i frågan.

Returer

En ny ObjectQuery<T> instans som motsvarar den ursprungliga instansen med INTERSECT som tillämpas baserat på den angivna query.

Undantag

Parametern query är null eller är en tom sträng.

Exempel

Det här exemplet skapar ett nytt ObjectQuery<T> objekt som innehåller resultatet av två andra frågor.

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);
    }
}

Kommentarer

Den angivna query som definierar resultat som ska inkluderas måste vara av samma typ eller av en typ som är kompatibel med ObjectQuery<T>.

Parametrar som definieras i den angivna query slås samman med parametrar som definieras i instansen ObjectQuery<T> . Parametrarna måste vara unika i den kombinerade ObjectParameterCollection. Det kan inte finnas två parametrar i den kombinerade samlingen med samma namn. Mer information finns i Query Builder-metoder.

Den resulterande frågan ärver anslutningen från den ObjectQuery<T> instans där Intersect metoden anropades.

Gäller för

Se även