ObjectQuery<T>.Union(ObjectQuery<T>) 메서드

정의

중복 없이 쿼리 결과를 다른 개체 쿼리의 결과와 결합합니다.Combines the results of the query with the results of another object query, without any duplicates.

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)

매개 변수

query
ObjectQuery<T>

추가할 결과를 나타내는 ObjectQuery<T>입니다.An ObjectQuery<T> that represents the results to add.

반환

원래 인스턴스에 UNION을 적용하여 지정된 query의 결과를 추가하는 것과 동일한 새 ObjectQuery<T> 인스턴스입니다.A new ObjectQuery<T> instance that is equivalent to the original instance with UNION applied to add the results of the specified query.

예외

query 매개 변수가 null인 경우The query parameter is null.

예제

이 예제는 기준으로 합니다 AdventureWorks Sales 모델합니다.This example is based on the AdventureWorks Sales Model. 예제에서는 Union 메서드를 사용하여 새 ObjectQuery<T> 개체를 만듭니다.The example uses Union method to creates a new ObjectQuery<T> object.

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);
    }
}
Dim productID = 100
Using context As New AdventureWorksEntities()
    Dim queryString As String = "SELECT VALUE product FROM AdventureWorksEntities.Products AS product " & _
            " WHERE product.ProductID < @productID"
    Dim productQuery As New ObjectQuery(Of Product)(queryString, context, MergeOption.NoTracking)

    Dim productQuery2 As New ObjectQuery(Of Product)(queryString, context, MergeOption.NoTracking)

    Dim productQuery3 As ObjectQuery(Of Product) = 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. 
    For Each result As Product In productQuery3
        Console.WriteLine("Product Name: {0}", result.ProductID)
    Next
End Using

설명

Union 제공 된 결과 추가 query 중복 없이 합니다.Union adds the results of the supplied query without any duplicates.

제공 된 query 추가할 해야 결과를 정의 하는 동일한 형식 이거나이 형식으로 승격 될 수 있는 형식 이어야 ObjectQuery<T>합니다.The supplied query that defines the results to add must be of the same type or of a type that can be promoted to the type of this ObjectQuery<T>. 예를 들어, 다음은 유효 하기 때문에 DiscontinuedProducts 승격 시킬 수 Products:For example, the following is valid because DiscontinuedProducts can be promoted to Products:

ObjectQuery<Product>.Union(ObjectQuery<DiscontinuedProduct>)  

다음 때문에 예외가 throw 됩니다 Products 으로 승격 될 수 없습니다. DiscontinuedProducts합니다.The following will throw an exception because Products cannot be promoted to DiscontinuedProducts.

ObjectQuery <DiscontinuedProduct>.Union(ObjectQuery<Product>)   

에 대 한는 ObjectQuery<T> 형식의 DbDataRecord, 두 쿼리 모두에 있는 레코드의 열에 동일한 수의 열 및 형식이 있어야 합니다 DbDataRecord 고 전달 되는 query 의 열 형식으로 승격 될 수 있어야는 DbDataRecordObjectQuery<T>.For an ObjectQuery<T> of type DbDataRecord, the records in both queries must have the same number of columns, and the types in the columns of the DbDataRecord of the passed query must be promotable to the types of the columns in the DbDataRecord of the ObjectQuery<T>.

정의 된 매개 변수에 제공 된 query 에 정의 된 매개 변수를 사용 하 여 병합 되는 ObjectQuery<T> 인스턴스.Parameters that are defined in the supplied query are merged with parameters that are defined in the ObjectQuery<T> instance. @FSHO2@매개 변수는 결합된 ObjectParameterCollection에서 고유해야 합니다.Parameters must be unique in the combined ObjectParameterCollection. @FSHO2@결합된 컬렉션에 같은 이름의 매개 변수가 두 개 있을 수 없습니다.There cannot be two parameters in the combined collection with the same name. 자세한 내용은 쿼리 작성기 메서드합니다.For more information, see Query Builder Methods.

결과 쿼리는 ObjectQuery<T>이 호출된 Union 인스턴스에서 연결을 상속합니다.The resulting query inherits the connection from the ObjectQuery<T> instance on which Union was called.

적용 대상

추가 정보