Share via


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

Vea Introducción a consultas con LINQ.

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)

Otros recursos

Conceptos de consulta en LINQ to SQL