Cómo: Devolver el resultado de una consulta con LINQ como tipo específico (Visual Basic)
Language-Integrated Query (LINQ) facilita el acceso a la información de la base de datos y la ejecución de consultas. De forma predeterminada, las consultas LINQ devuelven una lista de objetos como un tipo anónimo. También puedes especificar que una consulta devuelva una lista de un tipo específico mediante la cláusula Select
.
El siguiente ejemplo muestra cómo crear una nueva aplicación que realiza consultas contra una base de datos de SQL Server y proyecta los resultados como un tipo de nombre específico. Para obtener más información, consulta Tipos anónimos y cláusula Select.
En los ejemplos de este tema se usa la base de datos de ejemplo Northwind. Si no dispone de esta base de datos en el equipo de desarrollo, puede descargarla del Centro de descarga de Microsoft. Para obtener instrucciones, vea Descargar bases de datos de ejemplo.
Nota:
Es posible que tu equipo muestre nombres o ubicaciones diferentes para algunos de los elementos de la interfaz de usuario de Visual Studio en las siguientes instrucciones. La edición de Visual Studio que se tenga y la configuración que se utilice determinan estos elementos. Para obtener más información, vea Personalizar el IDE.
Para crear una conexión a una base de datos
En Visual Studio, abra Explorador de servidores/Explorador de bases de datos, para lo cual, haga clic en Explorador de servidores/Explorador de bases de datos en el menú Ver.
Haga clic con el botón derecho en Conexiones de datos en Explorador de servidores/Explorador de bases de datos y luego haga clic en Agregar conexión.
Especifique una conexión válida a la base de datos de ejemplo Northwind.
Para agregar un proyecto que contenga un archivo LINQ to SQL
En el menú Archivo de Visual Studio, apunte a Nuevo y haga clic en Proyecto. Seleccione Aplicación de Windows Forms de Visual Basic como tipo de proyecto.
En el menú Proyecto , haga clic en Agregar nuevo elemento. Seleccione la plantilla de elemento Clases de LINQ to SQL.
Ponga al archivo el nombre
northwind.dbml
. Haga clic en Agregar. Se abre Object Relational Designer en el archivo northwind.dbml.
Para agregar tablas para consultar Object Relational Designer
En Explorador de servidores/Explorador de bases de datos, expanda la conexión a la base de datos Northwind. Expanda la carpeta Tablas .
Si ha cerrado Object Relational Designer, puede volver a abrirlo si hace doble clic en el archivo northwind.dbml que ha agregado anteriormente.
Haz clic en la tabla Clientes y arrástrala al panel izquierdo del diseñador.
El diseñador crea un nuevo objeto
Customer
para tu proyecto. Puedes proyectar un resultado de consulta como elCustomer
tipo o como un tipo que crees. En este ejemplo se creará un nuevo tipo en un procedimiento posterior y se proyectará un resultado de consulta como ese tipo.Guarda los cambios y cierra el diseñador.
Guarde el proyecto.
Para agregar código para consultar la base de datos y mostrar los resultados
En el Cuadro de herramientas, arrastra un control DataGridView a la instancia predeterminada de Windows Forms del proyecto, Form1.
Haz doble clic en Form1 para modificar la clase Form1.
Después de la instrucción
End Class
de la clase Form1, agrega el código siguiente para crear un tipoCustomerInfo
que contenga los resultados de la consulta de este ejemplo.Public Class CustomerInfo Public Property CompanyName As String Public Property ContactName As String End Class
Cuando has agregado tablas a Object Relational Designer, el diseñador ha agregado un objeto DataContext al proyecto. Este objeto contiene el código que debe tener para acceder a esas tablas, y para acceder a objetos y colecciones individuales de cada tabla. El nombre del objeto DataContext del proyecto se basa en el nombre del archivo .dbml. En este proyecto, el nombre del objeto DataContext es
northwindDataContext
.Puedes crear una instancia de DataContext en el código y consultar las tablas especificadas por Object Relational Designer.
En el evento de la clase Form1, añade el código siguiente al evento
Load
para consultar las tablas que se exponen como propiedades del contexto de datos. La cláusulaSelect
de la consulta creará un nuevo tipoCustomerInfo
en lugar de un tipo anónimo para cada elemento del resultado de la consulta.Dim db As New northwindDataContext Dim customerList = From cust In db.Customers Where cust.CompanyName.StartsWith("L") Select New CustomerInfo With {.CompanyName = cust.CompanyName, .ContactName = cust.ContactName} DataGridView1.DataSource = customerList
Presione F5 para ejecutar el proyecto y ver los resultados.
Vea también
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de