Compartir a través de


LINQ to SQL Tools en Visual Studio

 

Publicado: abril de 2016

LINQ to SQL fue la primera tecnología de asignación objeto-relacional publicada por Microsoft. Funciona bien en escenarios básicos y se sigue admitiendo en Visual Studio, pero ya no está en desarrollo activo. Usar LINQ to SQL al mantenimiento de una aplicación heredada que ya está usando o en aplicaciones sencillas que utilizan SQL Server y no requieren la asignación de varias tabla. En general, aplicaciones nuevas deben usar Entity Framework cuando se necesita una capa mapeador relacional de objetos.

En Visual Studio, crea clases LINQ to SQL que representan tablas SQL utilizando la Object Relational Designer.

El Object Relational Designer tiene dos áreas distintas en su superficie de diseño: el panel de entidades de 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, asociaciones y jerarquías de herencia. El panel de métodos es la superficie de diseño que muestra la DataContext métodos que se asignan a los procedimientos almacenados y funciones.

El Object Relational Designer (Object Relational Designer) proporciona una superficie de diseño visual para crear LINQ to SQL clases de entidad y asociaciones (relaciones) que se basan en los objetos de una base de datos. Es decir, el 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 fuertemente tipados DataContext que se utiliza para enviar y recibir datos entre las clases de entidad y la base de datos. El Object Relational Designer también proporciona funcionalidad para asignar procedimientos almacenados y funciones a DataContext métodos para devolver datos y rellenar las clases de entidad. Por último, el Object Relational Designer permite diseñar relaciones de herencia entre las clases de entidad.

Abrir Object Relational Designer

Para agregar un LINQ al modelo de entity SQL a su proyecto, elija proyecto | Agregar nuevo elemento y, a continuación, elija clases LINQ to SQL en la lista de elementos de proyecto:

Clases de LINQ to SQL

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

Clases LINQ to SQL en el Explorador de soluciones

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

Diseñador LINQ to SQL

Importante

El Object Relational Designer es un asignador relacional de objetos simple porque admite únicamente 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 admiten asignaciones complejas, como la asignación de una clase de entidad a una tabla combinada, utilizar 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 realizados manualmente en el archivo de código no se reflejan en el Object Relational Designer. 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 código generado por el Object Relational Designer.

Crear y configurar DataContext

Después de agregar un clases LINQ to SQL elemento a un proyecto y abrir el Object Relational Designer, la superficie de diseño vacía representa un DataContext listo para su configuración. el DataContext está configurado con información de conexión proporcionada por el primer elemento que se arrastra hasta la superficie de diseño... Por lo tanto, la DataContext está configurado con información de conexión desde el primer elemento que se coloca en la superficie de diseño. Para obtener más información acerca de la DataContext vea clase métodos DataContext (Object Relational Designer).

Crear 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 de base de datos y vistas de Server Explorer/Database Explorer hasta la Object Relational Designer. Como se indica en la sección anterior del DataContext está configurado con información de conexión proporcionada por el primer elemento que se arrastra hasta la superficie de diseño. Si se agrega un elemento subsiguiente que use otra conexión a la Object Relational Designer, puede cambiar la conexión para el DataContext. Para obtener más información, vea Cómo: crear clases de LINQ to SQL asignadas a tablas y vistas (Object Relational Designer).

Crear métodos de DataContext que llamen a procedimientos almacenados y funciones

Puede crear DataContext métodos que llamen (estén asignados) procedimientos almacenados y funciones arrastrándolos desde Explorador de servidores/Database Explorer hasta la Object Relational Designer. Procedimientos almacenados y funciones se agregan a la Object Relational Designer como métodos de la DataContext.

Nota

Al arrastrar los procedimientos almacenados y funciones de Server Explorer/Database Explorer en el Object Relational Designer, el tipo devuelto de generado DataContext método difiere dependiendo de dónde se coloca el elemento. Para obtener más información, consulte métodos DataContext (Object Relational Designer).

Configurar DataContext de modo que se usen los procedimientos almacenados para guardar los datos entre las clases de entidad y una base de datos

Como se indicó anteriormente, puede crear DataContext métodos que llaman a procedimientos almacenados y funciones. Además, también puede asignar los procedimientos almacenados que se pueden usar para el comportamiento predeterminado del motor en tiempo de ejecución LINQ to SQL en materia de inserciones, actualizaciones y eliminaciones. Para obtener más información, vea Cómo: asignar procedimientos almacenados para realizar actualizaciones, inserciones y eliminaciones (Object Relational Designer).

Herencia y Object Relational Designer

Al igual que otros objetos, las clases de 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. El Object Relational Designer admite el concepto de la herencia de tabla única normalmente implementada en los sistemas relacionales. Para obtener más información, vea Cómo: configurar la herencia utilizando Object Relational Designer.

Consultas de LINQ to SQL

Las clases de entidad creadas por el Object Relational Designer están diseñados para su uso con LINQ (Language-Integrated Query). Para obtener más información, vea Cómo: consultar información.

Separar la clase DataContext generada y el código de clase de entidad en espacios de nombres distintos

El Object Relational Designer proporciona el el espacio de nombres de contexto y el espacio de nombres de entidad Propiedades en el DataContext. Estas propiedades determinan qué espacio de nombres del DataContext y se genera el código de clase de entidad en. De forma predeterminada, estas propiedades están vacías y DataContext y clases de entidad 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 el el espacio de nombres de contexto o el espacio de nombres de entidad Propiedades.

En esta sección

Métodos de DataContext (Object Relational Designer)
Explica qué DataContext métodos son y cómo crearlos.

Herencia de clases de datos (Object Relational Designer)
Describe el concepto de herencia de tabla única y cómo se implementa en el Object Relational Designer.

Cómo: crear LINQ to SQL classes asignadas a tablas y vistas (Object Relational Designer)
Describe cómo crear clases de entidad asignadas a tablas y vistas de una base de datos.

Cómo: crear una asociación (relación) entre clases LINQ to SQL (Object Relational Designer)
Describe cómo crear una relación entre las clases de entidad de LINQ to SQL.

Cómo: crear métodos DataContext asignados a procedimientos almacenados y funciones (Object Relational Designer)
Describe cómo crear DataContext métodos que ejecutan procedimientos almacenados o funciones cuando se les llama.

Cómo: asignar procedimientos almacenados para realizar actualizaciones, inserciones y eliminaciones (Object Relational Designer)
Describe cómo configurar un DataContext volver a usar procedimientos almacenados al guardar los datos de entidad a una base de datos de clases.

Cómo: cambiar el tipo de valor devuelto de un método DataContext (Object Relational Designer)
Describe cómo establecer el tipo de valor devuelto de un DataContext método sea el tipo de una clase de entidad o un tipo generado automáticamente por el Object Relational Designer.

Cómo: agregar validación a las clases de entidad
Describe cómo generar métodos parciales que permitan agregar código durante los cambios de propiedad y las actualizaciones de las clases de entidad.

Cómo: activar y desactivar (Object Relational Designer) pluralización
Describe cómo activar y desactivar el cambio de nombre automático de las clases que se agregan al Object Relational Designer.

Cómo: configurar la herencia utilizando Object Relational Designer
Describe cómo configurar las clases de entidad usando la herencia de tabla única con el Object Relational Designer.

Cómo: ampliar código generado por el Object Relational Designer
Describe cómo y dónde se debe agregar código para que no se sobrescriba cuando los cambios en los objetos de Object Relational Designer vuelvan a generar el código.

Tutorial: Crear clases LINQ to SQL mediante la herencia de tabla única (Object Relational Designer)
Proporciona instrucciones paso a paso para configurar las clases de entidad usando la herencia de tabla única con el Object Relational Designer.

Tutorial: Personalizar la inserción, actualización y eliminación de comportamiento de las clases de entidad
Proporciona instrucciones paso a paso para configurar un DataContext volver a usar procedimientos almacenados al guardar los datos de entidad a una base de datos de clases.

Contenido de referencia

System.Linq

System.Data.Linq

Vea también

Herramientas de datos de Visual Studio para .NET
Preguntas más frecuentes
LINQ to SQL
Acceso a datos en Visual Studio