Condividi tramite


ObjectQuery<T> Costruttori

Definizione

Inizializza una nuova istanza della classe ObjectQuery<T>.

Overload

ObjectQuery<T>(String, ObjectContext)

Crea una nuova ObjectQuery<T> istanza usando il comando Entity SQL specificato come query iniziale.

ObjectQuery<T>(String, ObjectContext, MergeOption)

Crea una nuova ObjectQuery<T> istanza usando il comando Entity SQL specificato come query iniziale e l'opzione di unione specificata.

Commenti

È possibile inizializzare un oggetto ObjectQuery<T> in modo che rappresenti un singolo risultato scalare e non una raccolta di risultati scalari. Alcuni metodi di estensione richiedono come input risultati costituiti da una raccolta. In questo caso, viene generata un'eccezione ArgumentException quando viene chiamato uno di questi metodi. Per altre informazioni, vedere Query sugli oggetti.

Quando l'applicazione genera query Entity SQL in fase di esecuzione, è necessario tenere presente qualsiasi limitazione della lunghezza dei comandi dell'origine dati. Entity SQL non applica limitazioni sulla lunghezza del testo del comando nelle query.

ObjectQuery<T>(String, ObjectContext)

Crea una nuova ObjectQuery<T> istanza usando il comando Entity SQL specificato come query iniziale.

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)

Parametri

commandText
String

Query Entity SQL.

context
ObjectContext

Oggetto ObjectContext su cui eseguire la query.

Esempio

In questo esempio viene illustrato come costruire un'istanza della ObjectQuery<T> classe.

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

Commenti

Quando l'applicazione genera query Entity SQL in fase di esecuzione, è necessario tenere presente qualsiasi limitazione della lunghezza dei comandi dell'origine dati. Entity SQL non applica limitazioni sulla lunghezza del testo del comando nelle query.

Vedi anche

Si applica a

ObjectQuery<T>(String, ObjectContext, MergeOption)

Crea una nuova ObjectQuery<T> istanza usando il comando Entity SQL specificato come query iniziale e l'opzione di unione specificata.

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)

Parametri

commandText
String

Query Entity SQL.

context
ObjectContext

Oggetto ObjectContext su cui eseguire la query.

mergeOption
MergeOption

Specifica il modo in cui le entità recuperate mediante questa query devono essere unite con le entità restituite dalle query precedenti sullo stesso oggetto ObjectContext.

Esempio

In questo esempio viene ObjectQuery<T> inizializzato con la query specificata, ObjectContext, e 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"]);
    }
}

Commenti

Quando l'applicazione genera query Entity SQL in fase di esecuzione, è necessario tenere presente qualsiasi limitazione della lunghezza dei comandi dell'origine dati. Entity SQL non applica limitazioni sulla lunghezza del testo del comando nelle query.

Si applica a