Compartir a través de


Consultas: Recuperar información de un origen de datos

Una consulta se usa para devolver datos que coinciden con un conjunto de criterios. Por ejemplo, si desea saber cuántos de sus clientes viven en Estados Unidos, debe crear una consulta que examine una lista de clientes y compruebe el país o región especificado en su dirección.

Puede crear consultas y guardarlas en el modelo de la aplicación. A continuación, puede especificar sus criterios de búsqueda usando el Diseñador de consultas. Si el diseñador de consultas no le ofrece la funcionalidad que necesita, puede escribir código para ampliar las consultas. Una vez especificados sus criterios, use las consultas en una pantalla o ejecútelas como parte de la lógica de negocios.

Crear una consulta

Puede crear consultas en el Explorador de soluciones. Una consulta se basa en una sola entidad o tabla del modelo de la aplicación (por ejemplo, una entidad Customer). También puede basarse en otras consultas del modelo de la aplicación. La entidad, tabla o consulta en la que se basa la consulta son los datos de origen de la misma. Para obtener más información, vea Cómo: Agregar, quitar y modificar una consulta.

Diseñar una consulta con el Diseñador de consultas

En la mayoría de los casos, puede diseñar una consulta visualmente usando el diseñador de consultas. Agregue condiciones de filtro y grupos de filtro, términos de ordenación y parámetros a una consulta mediante la realización de selecciones en el diseñador. Para obtener más información, vea Cómo: Diseñar una consulta usando el Diseñador de consultas.

Condiciones de filtro

Los resultados de una consulta se pueden restringir agregando una o varias condiciones de filtro. Una condición de filtro describe una regla que cada una de las filas de datos debe cumplir. Las filas que cumplen la regla se incluyen en los resultados de la consulta. Una condición de filtro contiene las siguientes tres partes básicas:

  • Una propiedad de selección

  • Un valor de comparación

  • Un operador

Una propiedad de selección es la propiedad que desea usar como base de la condición de filtro. Por ejemplo, para devolver pedidos de ventas con una fecha de pedido concreta, puede usar OrderDate como propiedad de selección. Una propiedad de selección puede ser una propiedad que se incluye en los datos de origen o en una entidad o tabla relacionada. En el diseñador de consultas, solo aparecen propiedades para entidades o tablas relacionadas con una multiplicidad de cero a uno o uno. Por ejemplo, un pedido de ventas tiene solo un cliente. Por consiguiente, en una consulta que devuelve pedidos de ventas, puede seleccionar las propiedades del cliente relacionado como parte de una condición de filtro. Si desea usar una propiedad en una entidad o tabla relacionada con una multiplicidad de varios, tendrá que usar el código para extender la consulta.

El valor de comparación se compara con la propiedad de selección. Un valor de comparación puede ser un valor literal, como la cadena "9/22/2009 12:00:00 AM", una propiedad de selección, un parámetro o un valor relativo como Ahora, Hoy o Inicio de la semana.

Un operador es un símbolo que especifica el tipo de comparación que desea realizar. Por ejemplo, para devolver pedidos de ventas cuya fecha de pedido es anterior a "9/22/2009 12:00:00 AM", debe seleccionar el operador "<" (menor que).

La condición de filtro completa descrita en este ejemplo es Where OrderDate < 9/22/2009 12:00:00 AM.

Una condición de filtro puede relacionarse con otras del mismo tipo usando uno de los siguientes operadores lógicos: And, Or, And Not, Or Not.

Para cambiar el orden de las condiciones, arrástrelas a la posición deseada en el diseñador.

En la siguiente ilustración se muestran las partes de una condición de filtro.

Condiciones de filtro en una consulta

Grupos de filtro

Puede agrupar condiciones de filtro para que se evalúen como una sola unidad independiente del resto de las condiciones de este tipo. Para ello, cree un grupo de filtro en el diseñador de consultas.

Agrupar condiciones de filtro es similar a incluir una expresión entre paréntesis en una ecuación matemática o una instrucción lógica. Al agrupar condiciones, el operador lógico que aparece antes de la primera condición de un grupo se aplica a todo el grupo.

Al igual que las condiciones de filtro individuales, el orden de los grupos de filtro puede cambiarse con solo arrastrarlos a la posición deseada en el diseñador.

En la siguiente ilustración se muestran dos grupos de filtro.

Grupos de filtro en una consulta

Términos de ordenación

El orden predeterminado en el que aparecen los registros de una consulta puede especificarse mediante la adición de uno o varios términos de ordenación. Un término de ordenación contiene una propiedad y una dirección (por ejemplo, OrderDate y Ascending). Las términos de ordenación definen el criterio de ordenación predeterminado de los registros que aparecen en una pantalla. Los usuarios pueden ver los registros en un orden diferente realizando distintas selecciones en la interfaz de usuario de la pantalla. En el diseñador de consultas, puede cambiar el orden de ordenación de los términos arrastrándolos a la posición deseada en la lista.

Parámetros

Puede permitir que los usuarios filtren dinámicamente los resultados de una consulta. Por ejemplo, se puede habilitar a un usuario para ver los pedidos de ventas regionales mediante la selección de un territorio de ventas específico en una pantalla. Para admitir este escenario, agregue un parámetro a una consulta y asigne a dicha consulta un nombre adecuado (por ejemplo, SalesTerritory). Después, establezca el valor de comparación de un filtro en el parámetro. Por ejemplo, la expresión de consulta puede ser Where TerritoryID = SalesTerritory.

Puede diseñar pantallas que permiten a los usuarios proporcionar el valor del parámetro en tiempo de ejecución. Para obtener más información, vea Cómo: Proporcionar un valor a un parámetro de consulta.

Ampliar una consulta mediante código

El diseñador de consultas no admite algunos tipos de condiciones de filtro. Si se encuentra con alguna limitación del diseñador, puede usar el código para agregar condiciones a la consulta.

Nota

La consulta de una pantalla no se puede extender.Solo pueden extenderse las consultas que aparecen en el Explorador de soluciones.Para obtener más información sobre cómo editar una consulta de una pantalla, vea Cómo: Filtrar datos en una pantalla de Silverlight.

En la tabla siguiente se muestran dos condiciones de filtro que no pueden crearse mediante el diseñador de consultas.

Condición de filtro

Razón para usar el código

Devolver los 10 mejores clientes en función del número de pedidos de ventas.

Para determinar el número de pedidos de ventas, debe usar la operación Count. Operaciones como Count, Aggregate y Sum no están disponibles en el diseñador de consultas.

Devolver todos los clientes que compraron una carretilla.

Para determinar si un cliente compró una carretilla, debe usar una condición de filtro que haga referencia a una entidad Product. Dado que un cliente puede estar asociado a varios productos, la entidad Product probablemente exista en el lado "varios" de una relación Customer-Product. El diseñador de consultas no permite navegar por el lado "varios" de una relación.

Para resolver esta limitación, agregue código personalizado a un método al que se llama cuando se ejecuta la consulta. Para obtener más información, vea Cómo: Extender una consulta usando código.

Para definir condiciones de filtro en el código puede usar la sintaxis LINQ estándar. Al ejecutar la consulta, las condiciones que ha definido en el diseñador se combinan con las definidas en el código para generar el resultado de la consulta.

Las condiciones que define en el código no aparecen como condiciones de filtro en el diseñador de consultas. De igual forma, las condiciones de filtro que agrega mediante el diseñador de consultas no aparecen en el método. Si desea agregar un parámetro a una consulta, hágalo mediante el diseñador de consultas. Los parámetros que se agregan mediante el diseñador de consultas aparecen en la lista de parámetros del método.

Usar una consulta

Puede usar una consulta en una pantalla o ejecutarla en el código como parte de una operación comercial.

Usar una consulta en una pantalla

Puede crear una pantalla basada en una consulta personalizada (por ejemplo, una pantalla que muestre una lista de clientes ubicados en los Estados Unidos). Para obtener más información, vea Cómo: Crear una pantalla de Silverlight.

Puede agregar varias consultas a una pantalla. Por ejemplo, puede diseñar una consulta que muestre una lista de pedidos de ventas de un cliente determinado. Puede agregar esa consulta a la pantalla Cliente. Después, puede permitir al usuario seleccionar un cliente para ver todos los pedidos de ventas relacionados. Para obtener más información sobre cómo realizar esta tarea, vea Cómo: Proporcionar un valor a un parámetro de consulta.

Usar una consulta en el código

Puede recuperar consultas del modelo de la aplicación y, después, ejecutarlas en el código. Esto permite trabajar con colecciones de datos concretas en la lógica de negocios de la aplicación. Para obtener más información, vea Cómo: Recuperar datos de una consulta usando código.

Temas relacionados

Título

Descripción

Cómo: Agregar, quitar y modificar una consulta

Explica dónde puede agregarse una consulta en la interfaz de usuario de Visual Studio LightSwitch.

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

Describe cómo definir las condiciones de filtro, los parámetros y los términos de ordenación de una consulta usando un diseñador visual.

Cómo: Proporcionar un valor a un parámetro de consulta

Describe cómo permitir que los usuarios proporcionen un valor para un parámetro de consulta.

Cómo: Extender una consulta usando código

Describe cómo modificar una consulta a fin de disponer de más funcionalidades que las del diseñador de consultas.

Cómo: Controlar eventos de consulta

Describe cómo administrar eventos que se producen antes y después de ejecutar una consulta.

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

Describe cómo recuperar y ejecutar una consulta usando código.

Referencia: Propiedades del Diseñador de consultas

Describe las propiedades de las consultas y los elementos de consulta. El valor de estas propiedades se puede establecer en la ventana Propiedades.