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 |