Compartir a través de


Cómo: Recuperar datos de una consulta usando código

Se puede recuperar las consultas del modelo de la aplicación y, a continuación, ejecutarlas en el código.Esto le permite trabajar con colecciones concretas de datos en la lógica comercial de su aplicación.

Por ejemplo, el modelo puede contener una consulta denominada Products in Stock.Para determinar si un producto está disponible, puede escribir código de validación que recupera la consulta Products in Stock y, a continuación, ejecuta la consulta.Una vez ejecutada la consulta, el código puede iterar la colección resultante.Si un producto de esta colección coincide con un producto en el pedido de ventas actual, el usuario puede notificar a los clientes acerca del retraso.

También se puede agregar código para restringir los resultados de una consulta mediante una cláusula where.Mediante una claúsula where para restringir los resultados de una consulta se puede mejorar el rendimiento porque las condiciones de la claúsula where se aplican a nivel de servidor.Para obtener más información, vea Consultas: Recuperar información de un origen de datos.

Ejemplo: Recuperar datos de una consulta e iterar sa través de los resultados

Se llama al siguiente método auxiliar cuando un usuario agrega una nueva línea a un pedido de ventas.Si tiene una entidad con nombre Order_Details, puede llamar a este método desde el método Order_Details_Inserting.

Este código recupera los diez primeros clientes a partir de los pedidos de ventas ejecutando una consulta con nombre TopNSalesOrders.Si el identificador del cliente que hizo este pedido coincide con el identificador de cualquier cliente devuelto por la consulta, se aplica un 10% de descuento al elemento de línea.

Private Sub Good_Customer_Discount(ByVal entity As Order_Detail)
    For Each cust As Customer In _
        Me.DataWorkspace.NorthwindData.TopNSalesOrders(10)
        If cust.CustomerID = entity.Order.Customer.CustomerID Then
            entity.Discount = 0.1
        End If
    Next

End Sub
private void Good_Customer_Discount(Order_Detail entity)
{
    foreach (Customer cust in this.DataWorkspace.NorthwindData.
 TopNSalesOrders(10))
    {
        if (cust.CustomerID == entity.Order.Customer.CustomerID)
        {
            entity.Discount = 0.1F;
        }
    }
}

Ejemplo: Restringir los resultados de una consulta aplicando una claúsula Where

El siguiente código se puede utilizar como una alternativa al ejemplo anterior.Este código aplica una cláusula where a la consulta TopNSalesOrders y solo devuelve un cliente si el cliente está realizando el pedido actual.

Private Sub Good_Customer_Discount2(ByVal entity As Order_Detail)
    Dim query As IDataServiceQueryable(Of Customer)
    query = From mycustomer In Me.DataWorkspace.NorthwindData.TopNSalesOrders(10)
            Where mycustomer.CustomerID = entity.Order.Customer.CustomerID
            Select mycustomer

    If Not IsNothing(query.SingleOrDefault) Then
        entity.Discount = 0.01
    End If

End Sub
private void Good_Customer_Discount2(Order_Detail entity)
{
    IDataServiceQueryable<Customer> query;

    query = from myCustomer in this.DataWorkspace.NorthwindData.
                TopNSalesOrders(10)
            where myCustomer.CustomerID == entity.Order.Customer.CustomerID
            select myCustomer;

    if (query.SingleOrDefault() != null)
    {
        entity.Discount = 0.1F;
    }
}
}

Pasos siguientes

Para obtener información acerca de cómo diseñar una consulta visualmente mediante un diseñador, consulte Cómo: Diseñar una consulta usando el Diseñador de consultas.

Para obtener información acerca de cómo ampliar una consulta en el modelo mediante código, consulte Cómo: Extender una consulta usando código.

Vea también

Tareas

Cómo: Agregar, quitar y modificar una consulta

Tutorial: Diseñar una pantalla

Cómo: Diseñar una consulta usando el Diseñador de consultas

Cómo: Extender una consulta usando código

Otros recursos

Consultas: Recuperar información de un origen de datos