ObjectQuery<T> Costruttori

Definizione

Inizializza una nuova istanza della classe ObjectQuery<T>.

Overload

Nome Descrizione
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

Un ObjectQuery<T> oggetto può essere inizializzato in modo che rappresenti un singolo risultato scalare e non una raccolta di risultati scalari. Alcuni metodi di estensione richiedono risultati della raccolta come input. In questo caso, viene generata un'eccezione ArgumentException quando viene chiamato uno di questi metodi. Per altre informazioni, vedere Query di oggetto.

Quando l'applicazione genera query Entity SQL in fase di esecuzione, è necessario tenere presente eventuali limitazioni della lunghezza dei comandi dell'origine dati. Entity SQL non applica limitazioni alla 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 in 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 eventuali limitazioni della lunghezza dei comandi dell'origine dati. Entity SQL non applica limitazioni alla 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 in cui eseguire la query.

mergeOption
MergeOption

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

Esempio

In questo esempio, l'oggetto ObjectQuery<T> viene 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 eventuali limitazioni della lunghezza dei comandi dell'origine dati. Entity SQL non applica limitazioni alla lunghezza del testo del comando nelle query.

Si applica a