Compartir a través de


Trabajar con objetos relacionados con datos en el código

LightSwitch genera los objetos y miembros que describen los datos.Los nombres de los objetos y miembros coinciden con los nombres de los elementos de la solución.Por ejemplo, si agrega una tabla denominada Customer, LightSwitch genera un objeto denominado Customer.En este tema se describe cada tipo de objeto que se genera a través de LightSwitch.Para ver ejemplos de código que utilizan los objetos y miembros para realizar tareas relacionadas con datos comunes, vea Realizar tareas relacionadas con datos usando código.

Jerarquía de objetos y miembros generados

En la siguiente ilustración se resumen los objetos generados y los miembros del modelo de datos.

Jerarquía de objetos generados

Application

El objeto Application proporciona el acceso al nivel superior para los objetos de la aplicación.Para tener acceso al objeto Application, abra cualquier archivo de código de usuario en el editor de código y, a continuación, escriba Application.Los tipos de métodos y propiedades que aparecen en IntelliSense después de escribir Application y, luego escribir "." cambiarán según el archivo de código en que se esté escribiendo el código.En la mayoría de los casos, puede utilizar una propiedad del objeto Application para obtener un objeto que representa al usuario actual.

Área de trabajo de datos

El objeto DataWorkspace es el objeto de nivel superior para el acceso a todos los datos.El objeto DataWorkspace contiene una propiedad para cada origen de datos del proyecto.Por ejemplo, si tiene un origen de datos denominado NorthwindData, LightSwitch genera una propiedad denominada NorthwinddData.Al escribir DataWorkspace en el Code Editor, la propiedad NorthwindData queda como disponible en una lista desplegable.

La siguiente ilustración muestra algunos miembros generados que podrían aparecer en una lista desplegable.

Propiedades del origen de datos del objeto DataWorkspace

Origen de datos

LightSwitch genera un objeto para cada origen de datos de su proyecto.El objeto puede contener miembros que puede usar para el acceso a datos.Los miembros de un objeto de origen de datos incluyen las propiedades del conjunto de entidades y los métodos de consulta.

La siguiente ilustración muestra algunos miembros generados que podrían aparecer en una lista desplegable.

Miembros del objeto de origen de datos

Gg445195.collapse_all(es-es,VS.110).gifPropiedades del conjunto de entidades

Una propiedad del conjunto de entidades devuelve una colección de entidades.LightSwitch genera una propiedad de conjunto de entidades para cada entidad en el origen de datos.Por ejemplo, si el origen de datos contiene una entidad denominada Customer, LightSwitch genera una propiedad denominada Customers.Puede usar la propiedad Customers para obtener un objeto EntitySet que representa una colección de entidades Customer.

El objeto EntitySet también contiene miembros que le permiten comprobar si el usuario actual tiene permiso para leer, actualizar o eliminar las entidades en la colección.Para obtener más información, vea Realizar tareas relacionadas con datos usando código.

[!NOTA]

EntitySet es uno de varios tipos de objetos de colección de entidad.Para optimizar el rendimiento del código, asegúrese de que usa el tipo más adecuado de colección de entidades para la lógica comercial que está escribiendo.Para obtener más información, vea Colección de objetos de entidad y rendimiento.

Gg445195.collapse_all(es-es,VS.110).gifMétodo de consulta

Un método de consulta obtiene los resultados de una consultaLightSwitch genera un método para cada consulta que se define en su origen de datos.El nombre del método coincide con el nombre de la consulta.Una consulta puede devolver una entidad única o una colección de entidades de tipo IDataServiceQueryable.

[!NOTA]

IDataServiceQueryable<T> es uno de varios tipos de objetos de colección de entidad.Para optimizar el rendimiento del código, asegúrese que usa el tipo adecuado de colección de entidades para la lógica de negocio que está escribiendo.Para obtener más información, vea Colección de objetos de entidad y rendimiento.

De forma predeterminada, LightSwitch genera los siguientes métodos de consulta para cada entidad en el origen de datos.

  1. <Nombre de la entidad>_Single.

  2. < Nombre de la entidad >_SingleOrDefault.

Ambos métodos aceptan un segmento de la clave principal y devuelven un objeto entidad único.Si no se devuelve ninguna entidad, el método < Nombre de la entidad >_Single produce una excepción mientras que el < Nombre de la entidad >_SingleOrDefault devuelve un valor Null (Nothing en Visual Basic).

Entidades

LightSwitch genera un EntityObject para cada entidad de una colección de entidades.Por ejemplo, si el código recuperó una colección de órdenes, la colección contendría EntityObject que representa cada orden.Un EntityObject contiene miembros que puede utilizar para eliminar una entidad, leer o actualizar el valor de las propiedades de entidad u obtener entidades relacionadas.Puede recibir un EntityObject de un objeto de colección de entidad como un EntitySet o llamando a un método de consulta que devuelva una entidad.Para obtener más información, vea Realizar tareas relacionadas con datos usando código.

En la siguiente ilustración se muestran los miembros de un Order nombre de entidad myOrder.La entidad Order contiene propiedades de entidad como OrderDate, OrderIDy Freight.La entidad Order también tiene miembros que puede utilizar para obtener la colección Order_Details relacionada y Customer que hizo el pedido.

Propiedades de un objeto entidad

En este ejemplo, la propiedad Customer devuelve una entidad Customer.Una entidad Customer se encuentra en un extremo de la relación Customer-Order.

Una propiedad Order_Details devuelve una colección de entidades Order_Details.La entidad Order_Details se encuentra en los extremos de la relación Order-Order_Details.El objeto de la colección Order_Details es de tipo EntityCollection.

La ilustración también muestra una propiedad denominada Order_DetailsQuery.Las propiedades que finalizan con la palabra Query devuelven un objeto IDataServiceQueryable.

[!NOTA]

EntityCollection y IDataServiceQueryable son ambos tipos de objetos de colección de entidad.Para optimizar el rendimiento del código, asegúrese de que usa el tipo más adecuado de colección de entidades para la lógica de negocio que está escribiendo.Para obtener más información, vea Colección de objetos de entidad y rendimiento.

Objetos de colección de entidades y rendimiento

Al utilizar un objeto de colección de entidad en una expresión LINQ, LightSwitch realiza una operación que recupera las entidades de la capa del servidor.El tipo de objeto que utiliza determina si LightSwitch recupera todas las entidades en una colección o solo un subconjunto.Para garantizar que el código funciona tal y como se espera, elija el tipo más adecuado de objeto de la colección según la lógica de negocio que esté escribiendo.Hay dos tipos de objetos de colección de entidad: Los objetos que hacen que LightSwitch evalúe una expresión LINQ de forma remota, y los objetos que hacen que LightSwitch evalúe una expresión LINQ de forma local.

Gg445195.collapse_all(es-es,VS.110).gifOperaciones LINQ: Remotas VS. Ejecución local

Si utiliza un objeto EntitySet o IDataServiceQueryable en una expresión LINQ, LightSwitch pasa la expresión al servicio de datos del nivel de servicio.A continuación, los resultados de la expresión se devuelven al código de llamada.Este tipo de ejecución de la consulta está bien porque solo las entidades que satisfacen la consulta se devuelven al código de llamada.Sin embargo, solo un subconjunto de operadores de consulta son admitidos por el servicio de datos.Si su expresión requiere otros operadores de LINQ, considere el uso de otros tipos de objetos de la colección.

En la siguiente ilustración se muestra una expresión LINQ que usa un objeto IDataServiceQueryable.En el ejemplo se muestra la operación LINQ pasando la expresión completa al servicio de datos y devolviendo solo las entidades Order que satisfacen las condiciones de la consulta.

Ejecución remota de una expresión de consulta

Si utiliza un objeto EntityCollection o un objeto IEnumerable en una expresión LINQ, LightSwitch no pasará la expresión al servicio de datos.En su lugar, LightSwitch recupera todas las entidades del tipo especificado.A continuación, la expresión se aplica localmente a la colección completa.Si una colección de entidades es grande, este tipo de ejecución de consulta puede afectar negativamente al rendimiento.Sin embargo, su código puede utilizar el conjunto completo de los operadores LINQ.Además, el enfoque podría tener sentido cuando desee pasar las entidades de colección completas a otros métodos en su código.

En la siguiente ilustración se muestra una expresión LINQ que usa un objeto EntityCollection.En este ejemplo se muestra la operación LINQ que recupera todas las entidades Order para un cliente determinado.A continuación, las condiciones de la consulta se aplican localmente a la colección completa.

Ejecución local de una expresión de consulta

Gg445195.collapse_all(es-es,VS.110).gifEjemplos: Obtener objetos de la colección de entidades en código

Las siguientes presentaciones muestran cómo puede obtener colecciones de entidades Order en la base de datos de ejemplo Northwind.

Para obtener el objeto de colección de entidad

Utilizar el código

Ejecución remota o local

EntitySet

DataWorkspace.Northwind.Orders

o bien

myOrder.Details.EntitySet()

Remote

IDataServiceQueryable

myCustomer.OrdersQuery

o bien

DataWorkspace.Northwind.Orders.GetQuery()

Remote

EntityCollection

myCustomer.Orders

Local

IEnumerable

myCustomer.OrdersQuery.Execute()

o bien

DataWorkspace.Northwind.Orders.GetQuery().Execute()

Remote

Vea también

Conceptos

Realizar tareas relacionadas con datos usando código

Escribir código en LightSwitch

Otros recursos

Datos: La información que hay detrás de la aplicación