Share via


ObjectQuery<T> Oluşturucular

Tanım

ObjectQuery<T> sınıfının yeni bir örneğini başlatır.

Aşırı Yüklemeler

ObjectQuery<T>(String, ObjectContext)

Belirtilen Entity SQL komutunu ilk sorgu olarak kullanarak yeni ObjectQuery<T> bir örnek oluşturur.

ObjectQuery<T>(String, ObjectContext, MergeOption)

İlk sorgu ve belirtilen birleştirme seçeneği olarak belirtilen Entity SQL komutunu kullanarak yeni ObjectQuery<T> bir örnek oluşturur.

Açıklamalar

bir ObjectQuery<T> , bir skaler sonuç koleksiyonunu değil, tek bir skaler sonucu temsil eden şekilde başlatılabilir. Bazı uzantı yöntemleri giriş olarak koleksiyon sonuçları gerektirir. Bu durumda, bu yöntemlerden biri çağrıldığında bir ArgumentException oluşturulur. Daha fazla bilgi için bkz . Nesne Sorguları.

Uygulamanız çalışma zamanında Entity SQL sorguları oluşturduğunda, veri kaynağının komut uzunluğu sınırlamalarını bilmeniz gerekir. Entity SQL, sorgulardaki komut metninin uzunluğuyla ilgili sınırlamaları zorlamaz.

ObjectQuery<T>(String, ObjectContext)

Belirtilen Entity SQL komutunu ilk sorgu olarak kullanarak yeni ObjectQuery<T> bir örnek oluşturur.

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)

Parametreler

commandText
String

Entity SQL sorgusu.

context
ObjectContext

Sorgunun ObjectContext yürütülecek olduğu yer.

Örnekler

Bu örnekte, sınıfının bir örneğinin nasıl oluşturacakları gösterilmektedir 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);
}

Açıklamalar

Uygulamanız çalışma zamanında Entity SQL sorguları oluşturduğunda, veri kaynağının komut uzunluğu sınırlamalarını bilmeniz gerekir. Entity SQL, sorgulardaki komut metninin uzunluğuyla ilgili sınırlamaları zorlamaz.

Ayrıca bkz.

Şunlara uygulanır

ObjectQuery<T>(String, ObjectContext, MergeOption)

İlk sorgu ve belirtilen birleştirme seçeneği olarak belirtilen Entity SQL komutunu kullanarak yeni ObjectQuery<T> bir örnek oluşturur.

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)

Parametreler

commandText
String

Entity SQL sorgusu.

context
ObjectContext

Sorgunun ObjectContext yürütülecek olduğu yer.

mergeOption
MergeOption

Bu sorgu aracılığıyla alınan varlıkların aynı ObjectContextsorguya karşı önceki sorgulardan döndürülen varlıklarla nasıl birleştirileceği belirtir.

Örnekler

Bu örnekte, ObjectQuery<T> belirtilen sorgu ObjectContext, ve MergeOptionile başlatılır.

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

Açıklamalar

Uygulamanız çalışma zamanında Entity SQL sorguları oluşturduğunda, veri kaynağının komut uzunluğu sınırlamalarını bilmeniz gerekir. Entity SQL, sorgulardaki komut metninin uzunluğuyla ilgili sınırlamaları zorlamaz.

Şunlara uygulanır