Consultas en LINQ to SQL
Actualización: November 2007
Las consultas LINQ to SQL se definen utilizando la misma sintaxis que utilizaría en LINQ. La única diferencia es que los objetos a los que se hace referencia en las consultas se asignan a elementos de una base de datos. Para obtener más información, consulte Introducción a consultas con LINQ.
LINQ to SQL convierte las consultas que se escriben en consultas SQL equivalentes y las envía al servidor para su procesamiento. Más específicamente, la aplicación utiliza la API de LINQ to SQL para solicitar la ejecución de la consulta. Después, el proveedor LINQ to SQL transforma la consulta en texto SQL y delega la ejecución al proveedor ADO. El proveedor ADO devuelve los resultados de la consulta como DataReader. El proveedor LINQ to SQL convierte los resultados de ADO en una colección IQueryable de objetos de usuario.
En la siguiente ilustración se muestra este flujo general.
Diagrama de ejecución de la consulta
Nota: |
---|
La mayoría de los métodos y operadores de los tipos integrados de .NET Framework tienen equivalentes directos en SQL. Los que LINQ no puede convertir generan excepciones en tiempo de ejecución. Para obtener más información, vea Correspondencia de tipos SQL-CLR (LINQ to SQL). |
La tabla siguiente muestra las similitudes y diferencias entre los elementos de las consultas LINQ y LINQ to SQL.
Elemento |
Consulta LINQ |
Consulta LINQ to SQL |
---|---|---|
Tipo de valor devuelto de la variable local que contiene la consulta (para las consultas que devuelven secuencias) |
Interfaz genérica IEnumerable |
Interfaz genérica IQueryable |
Especificar el origen de datos |
Utiliza la cláusula From (Visual Basic) o from (C#) |
Igual |
Filtrar |
Utiliza la cláusula Where/where |
Igual |
Grupo |
Utiliza la cláusula Group…By/groupby |
Igual |
Seleccionar (proyectar) |
Utiliza la cláusula Select/select |
Igual |
Ejecución diferida frente a ejecución inmediata |
Igual |
|
Implementar combinaciones |
Utiliza la cláusula Join/join |
Puede utilizar la cláusula Join/join, pero utiliza el atributo AssociationAttribute más eficazmente. Para obtener más información, consulte Realizar consultas en varias relaciones (LINQ to SQL). |
Ejecución remota frente a ejecución local |
|
Para obtener más información, vea Comparación entre la ejecución remota y local de consultas (LINQ to SQL). |
Consultas con transmisión por frecuencias frente a consultas con almacenamiento en caché |
No aplicable en un escenario de memoria local |
|
Vea también
Conceptos
Introducción a consultas con LINQ
Operaciones básicas de consulta (LINQ)
Relaciones entre tipos en operaciones de consulta (LINQ)