ObjectQuery<T> 생성자

정의

ObjectQuery<T> 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the ObjectQuery<T> class.

오버로드

ObjectQuery<T>(String, ObjectContext)

지정된 Entity SQLEntity SQL 명령을 초기 쿼리로 사용하여 새 ObjectQuery<T> 인스턴스를 만듭니다.Creates a new ObjectQuery<T> instance using the specified Entity SQLEntity SQL command as the initial query.

ObjectQuery<T>(String, ObjectContext, MergeOption)

지정된 Entity SQLEntity SQL 명령을 초기 쿼리로 사용하고 지정된 병합 옵션을 사용하여 새 ObjectQuery<T> 인스턴스를 만듭니다.Creates a new ObjectQuery<T> instance using the specified Entity SQLEntity SQL command as the initial query and the specified merge option.

설명

ObjectQuery<T> 스칼라 결과 컬렉션이 아니라 단일 스칼라 결과를 나타내는 방식으로 초기화할 수 있습니다.An ObjectQuery<T> can be initialized in such a way that it represents a single scalar result and not a collection of scalar results. 일부 확장 메서드에는 입력으로 컬렉션 결과가 필요 합니다.Some extension methods require collection results as input. 이 경우 ArgumentException 이러한 메서드 중 하나가 호출 되 면이 throw 됩니다.In this case, an ArgumentException is thrown when one of these methods is called. 자세한 내용은 개체 쿼리합니다.For more information, see Object Queries.

애플리케이션에서 런타임에 Entity SQL 쿼리를 생성할 때 데이터 원본의 모든 명령 길이 제한을 알고 있어야 합니다.When your application generates Entity SQL queries at runtime, you should be aware of any command length limitations of the data source. Entity SQL은 쿼리에서 명령 텍스트의 길이에 대 한 제한을 적용 하지 않습니다.Entity SQL does not enforce limitations on the length of the command text in queries.

ObjectQuery<T>(String, ObjectContext)

지정된 Entity SQLEntity SQL 명령을 초기 쿼리로 사용하여 새 ObjectQuery<T> 인스턴스를 만듭니다.Creates a new ObjectQuery<T> instance using the specified Entity SQLEntity SQL command as the initial query.

public:
 ObjectQuery(System::String ^ commandText, System::Data::Objects::ObjectContext ^ context);
public ObjectQuery (string commandText, System.Data.Objects.ObjectContext context);
new System.Data.Objects.ObjectQuery<'T> : string * System.Data.Objects.ObjectContext -> System.Data.Objects.ObjectQuery<'T>
Public Sub New (commandText As String, context As ObjectContext)

매개 변수

commandText
String

Entity SQLEntity SQL 쿼리입니다.The Entity SQLEntity SQL query.

context
ObjectContext

쿼리를 실행할 ObjectContext입니다.The ObjectContext on which to execute the query.

예제

이 항목의 예제는 Microsoft SQL Server 제품 샘플: 데이터베이스를 기반으로 합니다.The example in this topic is based on the Microsoft SQL Server Product Samples: Database. 예제에서는 클래스의 인스턴스를 생성 하는 방법을 보여 줍니다 ObjectQuery<T> .The example shows how to construct an instance of the ObjectQuery<T> class.

using (AdventureWorksEntities context =
    new AdventureWorksEntities())
{
    // Call the constructor with a query for products and the ObjectContext.
    ObjectQuery<Product> productQuery1 =
        new ObjectQuery<Product>("Products", context);

    foreach (Product result in productQuery1)
        Console.WriteLine("Product Name: {0}", result.Name);

    string queryString =
        @"SELECT VALUE product FROM AdventureWorksEntities.Products AS product";

    // Call the constructor with the specified query and the ObjectContext.
    ObjectQuery<Product> productQuery2 =
        new ObjectQuery<Product>(queryString, context);

    foreach (Product result in productQuery2)
        Console.WriteLine("Product Name: {0}", result.Name);

    // Call the constructor with the specified query, the ObjectContext,
    // and the NoTracking merge option.
    ObjectQuery<Product> productQuery3 =
        new ObjectQuery<Product>(queryString,
            context, MergeOption.NoTracking);

    foreach (Product result in productQuery3)
        Console.WriteLine("Product Name: {0}", result.Name);
}
Using context As New AdventureWorksEntities()
    ' Call the constructor with a query for products and the ObjectContext. 
    Dim productQuery1 As New ObjectQuery(Of Product)("Products", context)

    For Each result As Product In productQuery1
        Console.WriteLine("Product Name: {0}", result.Name)
    Next

    Dim queryString As String = "SELECT VALUE product FROM AdventureWorksEntities.Products AS product"

    ' Call the constructor with the specified query and the ObjectContext. 
    Dim productQuery2 As New ObjectQuery(Of Product)(queryString, context)

    For Each result As Product In productQuery2
        Console.WriteLine("Product Name: {0}", result.Name)
    Next

    ' Call the constructor with the specified query, the ObjectContext, 
    ' and the NoTracking merge option. 
    Dim productQuery3 As New ObjectQuery(Of Product)(queryString, context, MergeOption.NoTracking)

    For Each result As Product In productQuery3
        Console.WriteLine("Product Name: {0}", result.Name)
    Next
End Using

설명

애플리케이션에서 런타임에 Entity SQL 쿼리를 생성할 때 데이터 원본의 모든 명령 길이 제한을 알고 있어야 합니다.When your application generates Entity SQL queries at runtime, you should be aware of any command length limitations of the data source. Entity SQL은 쿼리에서 명령 텍스트의 길이에 대 한 제한을 적용 하지 않습니다.Entity SQL does not enforce limitations on the length of the command text in queries.

추가 정보

적용 대상

ObjectQuery<T>(String, ObjectContext, MergeOption)

지정된 Entity SQLEntity SQL 명령을 초기 쿼리로 사용하고 지정된 병합 옵션을 사용하여 새 ObjectQuery<T> 인스턴스를 만듭니다.Creates a new ObjectQuery<T> instance using the specified Entity SQLEntity SQL command as the initial query and the specified merge option.

public:
 ObjectQuery(System::String ^ commandText, System::Data::Objects::ObjectContext ^ context, System::Data::Objects::MergeOption mergeOption);
public ObjectQuery (string commandText, System.Data.Objects.ObjectContext context, System.Data.Objects.MergeOption mergeOption);
new System.Data.Objects.ObjectQuery<'T> : string * System.Data.Objects.ObjectContext * System.Data.Objects.MergeOption -> System.Data.Objects.ObjectQuery<'T>
Public Sub New (commandText As String, context As ObjectContext, mergeOption As MergeOption)

매개 변수

commandText
String

Entity SQLEntity SQL 쿼리입니다.The Entity SQLEntity SQL query.

context
ObjectContext

쿼리를 실행할 ObjectContext입니다.The ObjectContext on which to execute the query.

mergeOption
MergeOption

이 쿼리를 통해 검색한 엔터티를 같은 ObjectContext의 이전 쿼리에서 반환된 엔터티와 병합할 방법을 지정합니다.Specifies how the entities that are retrieved through this query should be merged with the entities that have been returned from previous queries against the same ObjectContext.

예제

이 예제는 Microsoft SQL Server 제품 샘플: 데이터베이스를 기반으로 합니다.This example is based on the Microsoft SQL Server Product Samples: Database. ObjectQuery<T> 지정 된 쿼리, 및를 사용 하 여 초기화 됩니다 ObjectContext MergeOption .The ObjectQuery<T> is initialized with the specified query, ObjectContext, and MergeOption.

int productID = 900;
using (AdventureWorksEntities context =
    new AdventureWorksEntities())
{
    string queryString = @"SELECT VALUE product FROM
        AdventureWorksEntities.Products AS product
        WHERE product.ProductID > @productID";

    ObjectQuery<Product> productQuery1 =
        new ObjectQuery<Product>(queryString,
            context, MergeOption.NoTracking);

    productQuery1.Parameters.Add(new ObjectParameter("productID", productID));

    ObjectQuery<DbDataRecord> productQuery2 =
        productQuery1.Select("it.ProductID");

    foreach (DbDataRecord result in productQuery2)
    {
        Console.WriteLine("{0}", result["ProductID"]);
    }
}
Dim productID = 900
Using context As New AdventureWorksEntities()
    Dim queryString As String = "SELECT VALUE product FROM AdventureWorksEntities.Products AS product" & _
            " WHERE product.ProductID > @productID"

    Dim productQuery1 As New ObjectQuery(Of Product)(queryString, context, MergeOption.NoTracking)
    productQuery1.Parameters.Add(New ObjectParameter("productID", productID))

    Dim productQuery2 As ObjectQuery(Of DbDataRecord) = productQuery1.Select("it.ProductID")

    For Each result As DbDataRecord In productQuery2
        Console.WriteLine("{0}", result("ProductID"))
    Next
End Using

설명

애플리케이션에서 런타임에 Entity SQL 쿼리를 생성할 때 데이터 원본의 모든 명령 길이 제한을 알고 있어야 합니다.When your application generates Entity SQL queries at runtime, you should be aware of any command length limitations of the data source. Entity SQL은 쿼리에서 명령 텍스트의 길이에 대 한 제한을 적용 하지 않습니다.Entity SQL does not enforce limitations on the length of the command text in queries.

적용 대상