ObjectQuery<T> Konstruktory

Definice

Inicializuje novou instanci ObjectQuery<T> třídy.

Přetížení

Name Description
ObjectQuery<T>(String, ObjectContext)

Vytvoří novou ObjectQuery<T> instanci pomocí zadaného příkazu Entity SQL jako počáteční dotaz.

ObjectQuery<T>(String, ObjectContext, MergeOption)

Vytvoří novou ObjectQuery<T> instanci pomocí zadaného příkazu Entity SQL jako počátečního dotazu a zadané možnosti sloučení.

Poznámky

Inicializovat ObjectQuery<T> lze tak, aby představoval jeden skalární výsledek, a ne kolekci skalárních výsledků. Některé metody rozšíření vyžadují jako vstup výsledky kolekce. V tomto případě je vyvolána, ArgumentException když je volána jedna z těchto metod. Další informace naleznete v tématu Dotazy na objekty.

Když vaše aplikace generuje dotazy Entity SQL za běhu, měli byste vědět o jakýchkoli omezeních délky příkazů zdroje dat. Entity SQL nevynucuje omezení délky textu příkazu v dotazech.

ObjectQuery<T>(String, ObjectContext)

Vytvoří novou ObjectQuery<T> instanci pomocí zadaného příkazu Entity SQL jako počáteční dotaz.

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)

Parametry

commandText
String

Dotaz Entity SQL.

context
ObjectContext

Na ObjectContext kterém se má dotaz spustit.

Příklady

Tento příklad ukazuje, jak vytvořit instanci ObjectQuery<T> třídy.

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

Poznámky

Když vaše aplikace generuje dotazy Entity SQL za běhu, měli byste vědět o jakýchkoli omezeních délky příkazů zdroje dat. Entity SQL nevynucuje omezení délky textu příkazu v dotazech.

Viz také

Platí pro

ObjectQuery<T>(String, ObjectContext, MergeOption)

Vytvoří novou ObjectQuery<T> instanci pomocí zadaného příkazu Entity SQL jako počátečního dotazu a zadané možnosti sloučení.

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)

Parametry

commandText
String

Dotaz Entity SQL.

context
ObjectContext

Na ObjectContext kterém se má dotaz spustit.

mergeOption
MergeOption

Určuje, jak mají být entity načtené prostřednictvím tohoto dotazu sloučeny s entitami, které byly vráceny z předchozích dotazů na stejné ObjectContext.

Příklady

V tomto příkladu ObjectQuery<T> se inicializuje pomocí zadaného dotazu ObjectContexta 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"]);
    }
}

Poznámky

Když vaše aplikace generuje dotazy Entity SQL za běhu, měli byste vědět o jakýchkoli omezeních délky příkazů zdroje dat. Entity SQL nevynucuje omezení délky textu příkazu v dotazech.

Platí pro