Información general de LINQ to Entities

Actualmente, la mayor parte de las aplicaciones empresariales se escriben para tener acceso a datos de bases de datos relacionales. En algún momento, estas aplicaciones tienen que interactuar con los datos representados en un formato relacional. El modelo relacional está optimizado para conseguir un almacenamiento y recuperación eficientes, no para el modelado conceptual que se usa en la programación orientada a objetos. Varias tablas normalizadas suelen corresponder a una sola clase, y las relaciones entre las clases no se representan del mismo modo que las relaciones entre tablas. Los programadores de aplicaciones empresariales a menudo deben usar dos o más lenguajes de programación: un lenguaje de alto nivel para los niveles de presentación y lógica empresarial (como Visual C# o Visual Basic) y un lenguaje de consulta para interactuar con la base de datos (como Transact-SQL). Esto requiere que el programador tenga conocimientos de varios idiomas para ser efectivo y también causa discrepancias de idiomas en el entorno de desarrollo. Por ejemplo, una aplicación que utiliza API de acceso a datos para ejecutar una consulta en una base de datos especifica la consulta como un literal de cadena usando comillas. Esta cadena de consulta es opaca para el compilador y no se comprueba si contiene errores, tales como una sintaxis no válida o si existen las columnas o las filas a las que hace referencia. No se realiza ninguna comprobación de los tipos de los parámetros de la consulta y tampoco hay compatibilidad con IntelliSense.

Entity Framework permite a los programadores trabajar con datos en forma de objetos y propiedades específicos del dominio, por ejemplo, con clientes y direcciones, sin tener que pensar en las tablas de las bases de datos subyacentes y en las columnas en las que se almacenan estos datos. Para obtener más información, vea Entity Data Model. LINQ permite a los programadores formular consultas basadas en conjuntos en el código de las aplicaciones, sin tener que usar un lenguaje de consulta independiente. A través de la infraestructura de Servicios de objeto de Entity Framework, ADO.NET expone una vista conceptual común de los datos, incluidos los datos relacionales, como objetos del entorno .NET. Esto hace que la capa de objetos sea un objetivo ideal para la compatibilidad con LINQ. Esta tecnología LINQ, LINQ to Entities, permite a los programadores crear consultas flexibles, pero con establecimiento inflexible de tipos, en el contexto del objeto de Entity Framework mediante el uso de expresiones y de operadores de consulta estándar de LINQ directamente desde el entorno de desarrollo. Las consultas se expresan en el propio lenguaje de programación y no como literales de consulta incrustados en el código de programación, como suele ser el caso en las aplicaciones escritas en Microsoft .NET Framework versión 2.0. El compilador detectará los errores de sintaxis y los errores en los nombres de miembros y los tipos de datos, y los notificará en tiempo de compilación, con lo que se reduce la posibilidad de que se produzcan problemas con los tipos entre Entity Data Model y la aplicación.

Las consultas de LINQ to Entities usan la infraestructura de Servicios de objeto. La clase ObjectContext es la clase primaria para interactuar con un Entity Data Model como objetos de CLR. El programador crea una instancia de ObjectQuery genérica a través del ObjectContext. La clase de ObjectQuery genérica representa una consulta que devuelve una instancia o colección de entidades con tipo. Los objetos entidad devueltos se pueden actualizar y se encuentran en el contexto del objeto. Esto también es así en el caso de los objetos entidad que se devuelven en forma de miembros de tipos anónimos.

En esta sección

Vea también

Otros recursos

LINQ to Entities