ObjectQuery<T> Konstruktoren

Definition

Initialisiert eine neue Instanz der ObjectQuery<T>-Klasse.

Überlädt

ObjectQuery<T>(String, ObjectContext)

Erstellt eine neue ObjectQuery<T> instance mit dem angegebenen Entity SQL-Befehl als erste Abfrage.

ObjectQuery<T>(String, ObjectContext, MergeOption)

Erstellt eine neue ObjectQuery<T> instance mithilfe des angegebenen Entity SQL-Befehls als anfängliche Abfrage und der angegebenen Mergeoption.

Hinweise

Eine ObjectQuery<T> kann in solcher Weise initialisiert werden, dass sie ein einzelnes skalares Ergebnis und keine Auflistung von skalaren Ergebnissen darstellt. Einige Erweiterungsmethoden erfordern Auflistungsergebnisse als Eingabe. In diesem Fall wird eine ArgumentException ausgelöst, wenn eine dieser Methoden aufgerufen wird. Weitere Informationen finden Sie unter Objektabfragen.

Wenn Ihre Anwendung Entity SQL-Abfragen zur Laufzeit generiert, sollten Sie alle Einschränkungen der Befehlslänge der Datenquelle beachten. Entity SQL erzwingt keine Einschränkungen für die Länge des Befehlstexts in Abfragen.

ObjectQuery<T>(String, ObjectContext)

Erstellt eine neue ObjectQuery<T> instance mit dem angegebenen Entity SQL-Befehl als erste Abfrage.

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)

Parameter

commandText
String

Die Entity SQL-Abfrage.

context
ObjectContext

Der ObjectContext, für den die Abfrage ausgeführt werden soll.

Beispiele

In diesem Beispiel wird gezeigt, wie eine instance der ObjectQuery<T> -Klasse erstellt wird.

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

Hinweise

Wenn Ihre Anwendung Entity SQL-Abfragen zur Laufzeit generiert, sollten Sie alle Einschränkungen der Befehlslänge der Datenquelle beachten. Entity SQL erzwingt keine Einschränkungen für die Länge des Befehlstexts in Abfragen.

Weitere Informationen

Gilt für:

ObjectQuery<T>(String, ObjectContext, MergeOption)

Erstellt eine neue ObjectQuery<T> instance mithilfe des angegebenen Entity SQL-Befehls als anfängliche Abfrage und der angegebenen Mergeoption.

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)

Parameter

commandText
String

Die Entity SQL-Abfrage.

context
ObjectContext

Der ObjectContext, für den die Abfrage ausgeführt werden soll.

mergeOption
MergeOption

Gibt an, wie die Entitäten, die mit dieser Abfrage abgerufen werden, mit den Entitäten zusammengeführt werden sollen, die von vorherigen Abfragen für denselben ObjectContext zurückgegeben wurden.

Beispiele

In diesem Beispiel wird der ObjectQuery<T> mit der angegebenen Abfrage, ObjectContextund MergeOptioninitialisiert.

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

Hinweise

Wenn Ihre Anwendung Entity SQL-Abfragen zur Laufzeit generiert, sollten Sie alle Einschränkungen der Befehlslänge der Datenquelle beachten. Entity SQL erzwingt keine Einschränkungen für die Länge des Befehlstexts in Abfragen.

Gilt für: