ObjectQuery<T> 建構函式

定義

初始化 ObjectQuery<T> 類別的新執行個體。

多載

ObjectQuery<T>(String, ObjectContext)

使用指定的 Entity SQL 命令作為初始查詢,建立新的 ObjectQuery<T> 實例。

ObjectQuery<T>(String, ObjectContext, MergeOption)

使用指定的 Entity SQL 命令做為初始查詢和指定的合併選項,建立新的 ObjectQuery<T> 實例。

備註

ObjectQuery<T> 可初始化,好讓它代表單一純量結果,而不是純量結果的集合。 某些擴充方法必須將集合結果當做輸入。 在此情況下,當呼叫其中一個方法時會擲回 ArgumentException。 如需詳細資訊,請參閱物件查詢

當您的應用程式在運行時間產生 Entity SQL 查詢時,您應該注意資料源的任何命令長度限制。 Entity SQL 不會對查詢中的命令文字長度強制執行限制。

ObjectQuery<T>(String, ObjectContext)

使用指定的 Entity SQL 命令作為初始查詢,建立新的 ObjectQuery<T> 實例。

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 SQL 查詢。

context
ObjectContext

要在上面執行查詢的 ObjectContext

範例

此範例示範如何建構 類別的 ObjectQuery<T> 實例。

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

備註

當您的應用程式在運行時間產生 Entity SQL 查詢時,您應該注意資料源的任何命令長度限制。 Entity SQL 不會對查詢中的命令文字長度強制執行限制。

另請參閱

適用於

ObjectQuery<T>(String, ObjectContext, MergeOption)

使用指定的 Entity SQL 命令做為初始查詢和指定的合併選項,建立新的 ObjectQuery<T> 實例。

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 SQL 查詢。

context
ObjectContext

要在上面執行查詢的 ObjectContext

mergeOption
MergeOption

指定透過這個查詢所擷取的實體如何與已經從先前針對相同 ObjectContext 的查詢所傳回的實體合併。

範例

在這裡範例中,會 ObjectQuery<T> 使用指定的查詢 ObjectContext、 和 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"]);
    }
}

備註

當您的應用程式在運行時間產生 Entity SQL 查詢時,您應該注意資料源的任何命令長度限制。 Entity SQL 不會對查詢中的命令文字長度強制執行限制。

適用於