Language Integrated Query

Language Integrated Query

Language Integrated Query (LINQ) es un proyecto de Microsoft que agrega consultas nativas semejantes a las de SQL a los lenguajes de la plataforma .NET, inicialmente a los lenguajes Visual Basic .NET y C#. Muchos conceptos que LINQ ha introducido fueron originalmente probados en , un proyecto de investigación de Microsoft.

LINQ define operadores de consulta estándar que permiten a lenguajes habilitados con LINQ filtrar, enumerar y crear proyecciones de varios tipos de colecciones usando la misma sintaxis. Tales colecciones pueden incluir vectores (arrays), clases enumerables, XML, conjuntos de datos desde bases de datos relacionales y orígenes de datos de terceros. El proyecto LINQ usa características de la versión 2.0 del .NET Framework, nuevos ensamblados relacionados con LINQ, y extensiones para los lenguajes C# y Visual Basic .NET. Microsoft ha distribuido una versión previa del LINQ, consistente de estas bibliotecas y compiladores para C# 3.0 y Visual Basic 9. Otros lenguajes, como F# y Nemerle, han anunciado brindar soporte preliminar.

El objetivo de crear LINQ es permitir que todo el código hecho en Visual Studio (incluidas las llamadas a bases de datos, datasets, XMLs) sean también orientados a objetos. Antes de LINQ, la manipulación de datos externos tenía un concepto más estructurado que orientado a objetos. Además LINQ trata de facilitar y estandarizar el acceso a dichos objetos.


Contenido

Características del lenguaje

LINQ usa varias características nuevas para permitir a lenguajes como C# el uso de la sintaxis de consultas nativas:

  • Tipos anónimos
  • Métodos extensores
  • Expresiones lambda
  • Árboles de expresión
  • Operadores de consulta estándar

Orígenes de datos

Aunque LINQ soporta inicialmente consultas en colecciones en memoria, bases de datos relacionales y datos XML, es una arquitectura extensible que permite a desarrolladores de orígenes de datos adicionales el uso del LINQ, implementando los operadores de consulta estándar como métodos extensores para sus orígenes de datos, o mediante la implementación de la interfaz IQueryable que permite convertir un árbol de expresión en tiempo de ejecución para transformarlo en algún lenguaje de consultas. Los operadores de consulta estándar son usados para objetos también y permiten consultar objetos en la memoria con la misma sintaxis LINQ.

SQLMetal

El framework LINQ incluye una herramienta llamada SQLMetal que permite la generación automática de clases directamente de una base de datos MS-SQL, permitiendo la integración de código y la base de datos fácil y rápidamente.

Esta generación de clases es totalmente visual. Lo único que se necesita es arrastrar las tablas de la base de datos en el código generado para realizar la llamada de las clases. El paso dos es llamar a la función context para obtener los datos de la clase.

Ejemplo

 // El tipo Northwind es una subclase de DataContext creada por SQLMetal
 // Northwind.Orders es de tipo Table<Order>
 // Northwind.Customers es de tipo Table<Customer>
 
 Northwind db = new Northwind(connectionString);
 
 // Se usa la palabra reservada 'var' porque no hay nombre para el tipo resultante de la proyección
 
 var q = from o in db.Orders, c in db.Customers
     where o.Quality == "200" && (o.CustomerID == c.CustomerID)
     select new { o.DueDate, c.CompanyName, c.ItemID, c.ItemName };
 
 // q es ahora un IEnumerable<T>, donde T es un tipo anónimo generado por el compilador
 
 foreach (var t in q)
 {
     // t está fuertemente tipado, incluso si no podemos nombrar el tipo en tiempo de diseño
 
     Console.WriteLine("Tipo de dato de DueDate= {0}", t.DueDate.GetType());
     Console.WriteLine("CompanyName (en minúsculas) = {0}", t.CompanyName.ToLower());
     Console.WriteLine("ItemID * 2 = {0}", t.ItemID * 2);
 }

Enlaces externos


Wikimedia foundation. 2010.

Игры ⚽ Поможем решить контрольную работу

Mira otros diccionarios:

  • Language Integrated Query — (Requête intégrée au langage, aussi connu sous le nom de LINQ) est un composant du Framework .NET de Microsoft qui ajoute des capacités d interrogation sur des données aux langages .NET en utilisant une syntaxe proche de celle de SQL. La plupart… …   Wikipédia en Français

  • Language Integrated Query — LINQ redirects here. For the card game, see Linq (card game). Language Integrated Query Influenced by SQL, Haskell Language Integrated Query (LINQ, pronounced link ) is a Microsoft .NET Framework component that adds native data querying… …   Wikipedia

  • Language Integrated Query — LINQ в составе .NET Framework Language Integrated Query (LINQ)  проект Microsoft по добавлению синтаксиса языка запросов, напоминающего SQL, в языки программирования платформы .NET Framework …   Википедия

  • Language Integrated Query — LINQ (Abkürzung für Language INtegrated Query) ist eine Komponente von Microsofts .NET Framework zur Abfrage von Datenquellen wie Datenbanken oder XML Dateien. Besonderheit ist, dass SQL , XLink und XQuery Anfragen direkt in .NET… …   Deutsch Wikipedia

  • Query language — Query languages are computer languages used to make queries into databases and information systems. Broadly, query languages can be classified according to whether they are database query languages or information retrieval query languages. The… …   Wikipedia

  • language — /lang gwij/, n. 1. a body of words and the systems for their use common to a people who are of the same community or nation, the same geographical area, or the same cultural tradition: the two languages of Belgium; a Bantu language; the French… …   Universalium

  • Oxygene (programming language) — Oxygene Developer RemObjects Software Stable release 3.0.21 (August 29, 2009; 2 years ago (2009 08 29)) Influenced by Object Pas …   Wikipedia

  • C Sharp (programming language) — The correct title of this article is C# (programming language). The substitution or omission of the # sign is because of technical restrictions. C# Paradigm(s) multi paradigm: structured, imperative …   Wikipedia

  • Common Language Infrastructure — Not to be confused with Command line Interface. The Common Language Infrastructure (CLI) is an open specification developed by Microsoft and standardized by ISO[1] and ECMA[2] that describes the executable code and runtime environment that form… …   Wikipedia

  • Common Intermediate Language — For the counterpart to compiled assembly in the Microsoft .NET framework, see .NET assembly. Common Intermediate Language (CIL, pronounced either sil or kil ) (formerly called Microsoft Intermediate Language or MSIL) is the lowest level human… …   Wikipedia

Compartir el artículo y extractos

Link directo
Do a right-click on the link above
and select “Copy Link”