Compartir a través de


Herramientas de LINQ to SQL en Visual Studio

LINQ to SQL fue la primera tecnología de asignación relacional de objetos publicada por Microsoft. Funciona bien en escenarios básicos y sigue siendo compatible con Visual Studio, pero ya no está en desarrollo activo. Utiliza LINQ to SQL al mantener una aplicación heredada que ya lo use o en una aplicación sencilla que utilice SQL Server y no requiera asignación de varias tablas. En general, las nuevas aplicaciones deben usar Entity Framework cuando se requiere una capa de asignación relacional de objetos.

Instalación de las herramientas de LINQ to SQL

En Visual Studio, para crear clases de LINQ to SQL que representan tablas SQL se usa Object Relational Designer (O/R Designer). El diseñador de O/R es la interfaz de usuario para editar archivos .dbml. La edición de archivos .dbml con una superficie de diseñador requiere las herramientas de LINQ to SQL que no están instaladas de forma predeterminada como parte de ninguna de las cargas de trabajo de Visual Studio.

Para instalar las herramientas de LINQ to SQL, inicie el instalador de Visual Studio, elija Modificar, luego seleccione la pestaña Componentes individuales, y después seleccione Herramientas LINQ to SQL en la categoría Herramientas de código.

¿Qué es el Diseñador de O/R?

Object Relational Designer tiene dos áreas distintas en su superficie de diseño: el panel de entidades (a la izquierda) y el panel de métodos (a la derecha). El panel de entidades es la superficie de diseño principal que muestra las clases de entidad, las asociaciones y las jerarquías de herencia. El panel de métodos es la superficie de diseño que muestra los métodos DataContext que se asignan a los procedimientos y funciones almacenados.

Object Relational Designer proporciona una superficie de diseño visual para crear clases de entidad y asociaciones (relaciones) de LINQ to SQL basadas en los objetos de una base de datos. Es decir, Object Relational Designer se usa para crear un modelo de objetos en una aplicación que se asigna a los objetos de una base de datos. También genera una clase DataContext fuertemente tipada que envía y recibe datos entre las clases de entidad y la base de datos. Object Relational Designer también proporciona funcionalidad para asignar procedimientos almacenados y funciones a los métodos de DataContext con el fin de devolver datos y rellenar las clases de entidad. Por último, Object Relational Designer permite diseñar relaciones de herencia entre las clases de entidad.

Abrir el diseñador de O/R

Para agregar un modelo de entidad LINQ to SQL al proyecto, elija Project>Agregar nuevo elementoy, a continuación, seleccione LINQ to SQL Classes en la lista de elementos del proyecto:

Captura de pantalla que muestra las clases LINQ to SQL.

Visual Studio crea un archivo .dbml y lo agrega a la solución. Es el archivo de asignación XML y sus archivos de código relacionados.

Captura de pantalla que muestra las clases LINQ to SQL en el Explorador de soluciones.

Al seleccionar el archivo .dbml, Visual Studio muestra la superficie de Object Relational Designer que le permite crear visualmente el modelo. En la ilustración siguiente se muestra el diseñador una vez que se han arrastrado las tablas Customers y Orders de Northwind desde el Explorador de servidores. Tenga en cuenta la relación entre las tablas.

Captura de pantalla que muestra LINQ to SQL Designer.

Importante

El Diseñador de O/R es un mapeador relacional de objetos simple porque solo admite relaciones de asignación 1:1. Es decir, una clase de entidad únicamente puede tener una relación de asignación 1:1 con una tabla o vista de base de datos. No se admite la asignación compleja, como la asignación de una clase de entidad a una tabla combinada; use Entity Framework para la asignación compleja. Además, el diseñador es un generador de código unidireccional. Esto significa que solo se reflejan en el archivo de código los cambios que se realizan en la superficie del diseñador. Los cambios manuales en el archivo de código no se reflejan en el Diseñador de O/R. Cualquier cambio que se realice manualmente en el archivo de código se sobrescribe cuando se guarda el diseñador y se vuelve a generar el código. Para obtener información acerca de cómo agregar código de usuario y extender las clases generadas por el Object Relational Designer, vea Cómo: Ampliar el código generado por Object Relational Designer.

Creación y configuración de DataContext

Después de agregar un elemento de Clases de LINQ to SQL a un proyecto y abrir Object Relational Designer, la superficie de diseño vacía representa un objeto DataContext vacío listo para su configuración. El elemento DataContext se configura con la información de conexión proporcionada por el primer elemento que se arrastra hasta la superficie de diseño. Por consiguiente, DataContext se configura usando la información de conexión del primer elemento que se coloca sobre la superficie de diseño. Para obtener más información sobre la clase DataContext, consulte métodos DataContext (O/R Designer).

Creación de clases de entidad que se asignan a tablas y vistas de base de datos

Puede crear clases de entidad asignadas a tablas y vistas arrastrando tablas y vistas de base de datos desde Explorador de servidores o Explorador de bases de datos al diseñador de O/R. Como se indica en la sección anterior, el DataContext se configura con la información de conexión proporcionada por el primer elemento que se arrastra a la superficie de diseño. Si se agrega a Object Relational Designer un elemento posterior que use otra conexión, puede cambiar la conexión para DataContext. Para obtener más información, consulte Cómo: Crear clases LINQ a SQL mapeadas a tablas y vistas (Diseñador O/R).

Creación de métodos DataContext que llaman a funciones y procedimientos almacenados

Puede crear métodos de DataContext que llamen (estén asignados) a procedimientos almacenados y funciones si los arrastra desde el Explorador de servidores o el Explorador de bases de datos hasta Object Relational Designer. Los procedimientos almacenados y las funciones se agregan a Object Relational Designer como métodos de DataContext.

Nota

Al arrastrar procedimientos almacenados y funciones desde Explorador de servidores o Explorador de bases de datos hasta el Diseñador de O/R de, el tipo de retorno del método DataContext que se genera difiere según el lugar donde se suelte el elemento. Para obtener más información, vea Métodos de DataContext (Object Relational Designer).

Configuración de dataContext para usar procedimientos almacenados para guardar datos entre clases de entidad y una base de datos

Como se indicó anteriormente, puede crear DataContext métodos que llaman a funciones y procedimientos almacenados. Además, también puede asignar procedimientos almacenados que se usan para el comportamiento predeterminado en tiempo de ejecución de LINQ to SQL, que realiza inserciones, actualizaciones y eliminaciones. Para obtener más información, vea Cómo: Asignar procedimientos almacenados para realizar actualizaciones, inserciones y eliminaciones (Diseñador de O/R).

Herencia y Object Relational Designer

Al igual que otros objetos, las clases LINQ to SQL pueden usar la herencia y derivarse de otras clases. En una base de datos, las relaciones de herencia se crean de varias maneras. Object Relational Designer admite el concepto de herencia de tabla única que normalmente se implementa en sistemas relacionales. Para obtener más información, vea Cómo: Configurar la herencia utilizando el Diseñador O/R.

Consultas de LINQ a SQL

Las clases de entidad creadas por el diseñador de O/R están diseñadas para su uso con Language Integrated Query (LINQ). Para obtener más información, vea Cómo: Consultar información.

Separación del objeto DataContext generado y el código de clase de entidad en espacios de nombres distintos

Object Relational Designer proporciona las propiedades Espacio de nombres del contexto y Espacio de nombres de la entidad de DataContext. Estas propiedades determinan en qué espacio de nombres se generan la clase DataContext y el código de clase de entidad. De forma predeterminada, estas propiedades están vacías y las clases de entidad y DataContext se generan en el espacio de nombres de la aplicación. Para generar el código en un espacio de nombres distinto del espacio de nombres de la aplicación, escriba un valor en las propiedades Espacio de nombres de contexto o espacio de nombres de entidad.

Contenido de referencia

Consulte también