Información general sobre el Diseñador relacional de objetos

Actualización: November 2007

El Diseñador relacional de objetos (Diseñador relacional de objetos) 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, el Diseñador relacional de objetos 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 con establecimiento inflexible de tipos que se usa para enviar y recibir datos entre las clases de entidad y la base de datos. El Diseñador relacional de objetos también proporciona la funcionalidad para asignar los procedimientos almacenados y funciones a los métodos de DataContext con el fin de devolver datos y rellenar las clases de entidad. Por último, el Diseñador relacional de objetos permite diseñar relaciones de herencia entre las clases de entidad.

El Diseñador relacional de objetos genera el archivo .dbml que proporciona la asignación entre las clases de LINQ to SQL y los objetos de base de datos. El Diseñador relacional de objetos también genera las clases DataContext con tipo y las clases de entidad.

El Diseñador relacional de objetos tiene dos áreas distintas en su superficie de diseño: a la izquierda, el panel de entidades y, a la derecha, el panel de métodos. 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 los métodos DataContext que están asignados a procedimientos almacenados y funciones.

Nota:

En la actualidad, el Diseñador relacional de objetos admite únicamente bases de datos de SQL Server 2000, SQL Server 2005, SQL Server 2008 y SQL Server Express. Aunque O/R Designer no es compatible con SQL Server Compact 3.5, LINQ to SQL si que lo es. Para obtener más información, vea SQL Server Compact 3.5 y LINQ to SQL. Para obtener información sobre cómo obtener SQL Server Express, vea la sección Obtener SQL Server Express en el tema Cómo: Instalar bases de datos de ejemplo.

Abrir el Diseñador relacional de objetos

Puede abrir el Diseñador relacional de objetos agregando un nuevo elemento de Clases de LINQ to SQL a un proyecto. Para obtener información detallada, vea Cómo: Agregar clases de LINQ to SQL a un proyecto (Diseñador relacional de objetos).

Nota importante:

El Diseñador relacional de objetos 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. En la actualidad, no se admiten asignaciones complejas, como la asignación de una clase de entidad a una tabla combinada. Además, el diseñador es un generador de código unidireccional. Esto significa que sólo 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 Diseñador relacional de objetos. 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 sobre cómo agregar código de usuario y extender las clases generadas por el Diseñador relacional de objetos, vea Cómo: Extender código generado por el Diseñador relacional de objetos.

Crear y configurar DataContext

Después de agregar un elemento de Clases de LINQ to SQL a un proyecto y abrir el Diseñador relacional de objetos, la superficie de diseño vacía representa un DataContext listo para su configuración. El 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, el 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, vea Métodos DataContext (Diseñador relacional de objetos).

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 y vistas de base de datos desde el Explorador de servidores/Explorador de bases de datos hasta el Diseñador relacional de objetos. Tal como se ha indicado en la sección anterior, el DataContext se configura con la información de conexión proporcionada por el primer elemento que se arrastra hasta la superficie de diseño. Si se agrega al Diseñador relacional de objetos un elemento subsiguiente que use otra conexión, se puede cambiar la conexión para DataContext. Para obtener más información, consulte Cómo: Crear clases de LINQ to SQL asignadas a tablas y vistas (Diseñador relacional de objetos).

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

Puede crear métodos de DataContext que llamen (estén asignados) a los procedimientos almacenados y funciones arrastrándolos desde el Explorador de servidores/Explorador de bases de datos hasta el Diseñador relacional de objetos. Los procedimientos almacenados y funciones se agregan al Diseñador relacional de objetos como métodos de DataContext.

Nota:

Al arrastrar los procedimientos almacenados y funciones desde el Explorador de servidores/Explorador de bases de datos hasta el Diseñador relacional de objetos, el tipo de valor devuelto del método generado de DataContext difiere según la ubicación donde se coloque el elemento. Para obtener más información, consulte Métodos DataContext (Diseñador relacional de objetos).

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 ha indicado anteriormente, puede crear métodos de DataContext que llamen a los 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, consulte Cómo: Asignar procedimientos almacenados para realizar actualizaciones, inserciones y eliminaciones (Diseñador relacional de objetos).

Herencia y el Diseñador relacional de objetos

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 Diseñador relacional de objetos 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 herencia usando el Diseñador relacional de objetos.

Consultas en LINQ to SQL

Las clases de entidad que crea el Diseñador relacional de objetos están diseñadas para que se usen con Language-Integrated Query (LINQ). Para obtener más información, consulte Cómo: Consultar información (LINQ to SQL).

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

El Diseñador relacional de objetos proporciona las propiedades Espacio de nombres del contexto y Espacio de nombres de la entidad en la clase 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, especifique un valor para las propiedades Espacio de nombres del contexto y/o Espacio de nombres de la entidad.

Vea también

Tareas

Tutorial: Crear clases de LINQ to SQL (Diseñador relacional de objetos)

Cómo: Asignar procedimientos almacenados para realizar actualizaciones, inserciones y eliminaciones (Diseñador relacional de objetos)

Conceptos

Lo nuevo en datos

Referencia

Guía de programación general con LINQ

Otros recursos

LINQ to SQL

LINQ to ADO.NET

Diseñador relacional de objetos (Diseñador R/O)