Compartir a través de


Consultas de LINQ to SQL

Las consultas LINQ to SQL se definen mediante la misma sintaxis que 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, vea Introducción a las consultas LINQ (C#).

LINQ to SQL traduce las consultas que escribe en consultas SQL equivalentes y las envía al servidor para su procesamiento. Más concretamente, la aplicación usa la API LINQ to SQL para solicitar la ejecución de consultas. A continuación, el proveedor LINQ to SQL transforma la consulta en texto SQL y delega la ejecución en el proveedor de ADO. El proveedor de ADO devuelve los resultados de la consulta como .DataReader El proveedor LINQ to SQL traduce los resultados de ADO a una IQueryable colección de objetos de usuario.

Nota:

La mayoría de los métodos y operadores de tipos integrados de .NET Framework tienen traducciones directas a SQL. Aquellos que LINQ no puede traducir generan excepciones en tiempo de ejecución. Para obtener más información, consulta Asignación de tipos de SQL-CLR.

En la tabla siguiente se muestran las similitudes y diferencias entre los elementos de consulta LINQ y LINQ to SQL.

Elemento Consulta LINQ Consultas de LINQ to SQL
Tipo de valor devuelto de la variable local que contiene la consulta (para las consultas que devuelven secuencias) Genérico IEnumerable Genérico IQueryable
Especificación del origen de datos Usa la From cláusula (Visual Basic) o from (C#) Iguales
Filtros Usa la Where/where cláusula Iguales
Agrupación Usa la Group…By/groupby cláusula Iguales
Seleccionar (proyectar) Usa la Select/select cláusula Iguales
Ejecución diferida frente a ejecución inmediata Consulte Introducción a las consultas LINQ (C#) Iguales
Implementar combinaciones Usa la Join/join cláusula Puede usar la Join/join cláusula , pero de forma más eficaz usa el AssociationAttribute atributo . Para obtener más información, consulte Realizar consultas en varias relaciones.
Ejecución remota frente a local Para obtener más información, vea Ejecución remota frente a local.
Streaming frente a consultas almacenadas en caché No aplicable en un escenario de memoria local

Consulte también