Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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 |