ObjectQuery<T> Constructores

Definición

Inicializa una nueva instancia de la clase ObjectQuery<T>.

Sobrecargas

ObjectQuery<T>(String, ObjectContext)

Crea una nueva ObjectQuery<T> instancia con el comando Entity SQL especificado como consulta inicial.

ObjectQuery<T>(String, ObjectContext, MergeOption)

Crea una nueva ObjectQuery<T> instancia con el comando Entity SQL especificado como consulta inicial y la opción de combinación especificada.

Comentarios

Se puede inicializar una ObjectQuery<T> de modo que represente un único resultado escalar y no una colección de resultados escalares. Algunos métodos de extensión requieren el uso de los resultados de la colección como entrada. En este caso, se produce una ArgumentException cuando se llama a uno de estos métodos. Para obtener más información, vea Consultas de objetos.

Cuando la aplicación genera consultas de Entity SQL en tiempo de ejecución, debe tener en cuenta las limitaciones de longitud de comandos del origen de datos. Entity SQL no aplica limitaciones en la longitud del texto del comando en las consultas.

ObjectQuery<T>(String, ObjectContext)

Crea una nueva ObjectQuery<T> instancia con el comando Entity SQL especificado como consulta inicial.

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)

Parámetros

commandText
String

Consulta entity SQL.

context
ObjectContext

ObjectContext en el que se va a ejecutar la consulta.

Ejemplos

El ejemplo de este tema se basa en la Microsoft SQL Server muestras de productos: base de datos. En el ejemplo se muestra cómo construir una instancia de la clase 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);
}
Using context As New AdventureWorksEntities()
    ' Call the constructor with a query for products and the ObjectContext. 
    Dim productQuery1 As New ObjectQuery(Of Product)("Products", context)

    For Each result As Product In productQuery1
        Console.WriteLine("Product Name: {0}", result.Name)
    Next

    Dim queryString As String = "SELECT VALUE product FROM AdventureWorksEntities.Products AS product"

    ' Call the constructor with the specified query and the ObjectContext. 
    Dim productQuery2 As New ObjectQuery(Of Product)(queryString, context)

    For Each result As Product In productQuery2
        Console.WriteLine("Product Name: {0}", result.Name)
    Next

    ' Call the constructor with the specified query, the ObjectContext, 
    ' and the NoTracking merge option. 
    Dim productQuery3 As New ObjectQuery(Of Product)(queryString, context, MergeOption.NoTracking)

    For Each result As Product In productQuery3
        Console.WriteLine("Product Name: {0}", result.Name)
    Next
End Using

Comentarios

Cuando la aplicación genera consultas de Entity SQL en tiempo de ejecución, debe tener en cuenta las limitaciones de longitud de comandos del origen de datos. Entity SQL no aplica limitaciones en la longitud del texto del comando en las consultas.

Consulte también

Se aplica a

ObjectQuery<T>(String, ObjectContext, MergeOption)

Crea una nueva ObjectQuery<T> instancia con el comando Entity SQL especificado como consulta inicial y la opción de combinación especificada.

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)

Parámetros

commandText
String

Consulta entity SQL.

context
ObjectContext

ObjectContext en el que se va a ejecutar la consulta.

mergeOption
MergeOption

Especifica el modo en que las entidades que se recuperen a través de esta consulta se deberían combinar con las entidades devueltas por consultas anteriores en el mismo ObjectContext.

Ejemplos

Este ejemplo se basa en los ejemplos de productos de Microsoft SQL Server: base de datos. ObjectQuery<T> se inicializa con la consulta especificada, ObjectContext y 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"]);
    }
}
Dim productID = 900
Using context As New AdventureWorksEntities()
    Dim queryString As String = "SELECT VALUE product FROM AdventureWorksEntities.Products AS product" & _
            " WHERE product.ProductID > @productID"

    Dim productQuery1 As New ObjectQuery(Of Product)(queryString, context, MergeOption.NoTracking)
    productQuery1.Parameters.Add(New ObjectParameter("productID", productID))

    Dim productQuery2 As ObjectQuery(Of DbDataRecord) = productQuery1.Select("it.ProductID")

    For Each result As DbDataRecord In productQuery2
        Console.WriteLine("{0}", result("ProductID"))
    Next
End Using

Comentarios

Cuando la aplicación genera consultas de Entity SQL en tiempo de ejecución, debe tener en cuenta las limitaciones de longitud de comandos del origen de datos. Entity SQL no aplica limitaciones en la longitud del texto del comando en las consultas.

Se aplica a