LINQ to SQL herramientas en Visual StudioLINQ to SQL Tools in Visual Studio

LINQ to SQL era la primera tecnología de asignación objeto-relacional publicada por Microsoft.LINQ to SQL was the first object-relational mapping technology released by Microsoft. Funciona bien en escenarios básicos y continúa siendo compatible con Visual Studio, pero es ya no está en desarrollo activo.It works well in basic scenarios and continues to be supported in Visual Studio, but it is no longer under active development. Usar LINQ to SQL al mantener una aplicación heredada que ya está utilizando, o en aplicaciones sencillas que use SQL Server y no requieren la asignación de varias tabla.Use LINQ to SQL when maintaining a legacy application that is already using it, or in simple applications that use SQL Server and do not require multi-table mapping. En general, aplicaciones nuevas deben usar Entity Framework cuando se requiere un nivel de asignador relacional de objetos.In general, new applications should use the Entity Framework when an object-relational mapper layer is required.

En Visual Studio, crear LINQ a las clases SQL que representan tablas SQL mediante el uso de Object Relational Designer (Object Relational Designer).In Visual Studio, you create LINQ to SQL classes that represent SQL tables by using the Object Relational Designer (O/R Designer).

El Object Relational DesignerO/R Designer tiene dos áreas distintas en la superficie de diseño: el panel de entidades de la izquierda y el panel de métodos a la derecha.The Object Relational DesignerO/R Designer has two distinct areas on its design surface: the entities pane on the left, and the methods pane on the right. El panel de entidades es la superficie de diseño principal que muestra las clases de entidad, asociaciones y jerarquías de herencia.The entities pane is the main design surface that displays the entity classes, associations, and inheritance hierarchies. El panel de métodos es la superficie de diseño que muestra la DataContext métodos que están asignados a procedimientos almacenados y funciones.The methods pane is the design surface that displays the DataContext methods that are mapped to stored procedures and functions.

El Object Relational DesignerO/R Designer proporciona una superficie de diseño visual para crear LINQ to SQL las clases de entidad y asociaciones (relaciones) que se basan en los objetos de una base de datos.The Object Relational DesignerO/R Designer provides a visual design surface for creating LINQ to SQL entity classes and associations (relationships) that are based on objects in a database. Es decir, el Object Relational DesignerO/R Designer se usa para crear un modelo de objetos en una aplicación que se asigna a los objetos de una base de datos.In other words, the Object Relational DesignerO/R Designer is used to create an object model in an application that maps to objects in a database. También genera una clase DataContext fuertemente tipada que se usa para enviar y recibir datos entre las clases de entidad y la base de datos.It also generates a strongly-typed DataContext that is used to send and receive data between the entity classes and the database. El Object Relational DesignerO/R Designer 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.The Object Relational DesignerO/R Designer also provides functionality to map stored procedures and functions to DataContext methods for returning data and populating entity classes. Por último, el Object Relational DesignerO/R Designer permite diseñar relaciones de herencia entre las clases de entidad.Finally, the Object Relational DesignerO/R Designer provides the ability to design inheritance relationships between entity classes.

Abrir Object Relational DesignerOpening the O/R Designer

Para agregar un LINQ al modelo de entity SQL al proyecto, elija proyecto, Agregar nuevo elemento y, a continuación, elija clases LINQ to SQL en la lista de elementos de proyecto:To add a LINQ to SQL entity model to your project, choose Project, Add New Item and then choose LINQ to SQL Classes from the list of project items:

Clases LINQ to SQLLINQ to SQL Classes

Visual Studio crea un archivo .dbml y lo agrega a la solución.Visual Studio creates a .dbml file and adds it to your solution. Este es el archivo de asignación de XML y sus archivos de código relacionados.This is the XML mapping file and its related code files.

Clases de LINQ to SQL en el Explorador de solucionesLINQ to SQL classes in Solution Explorer

Cuando se selecciona el archivo .dbml, Visual Studio muestra la superficie del Diseñador de Object Relational que le permite crear visualmente el modelo.When you select the .dbml file, Visual Studio shows the O/R designer surface that enables you to visually create the model. En la siguiente ilustración muestra el diseñador después de las tablas de Northwind Customers y Orders que se han arrastrado desde el Explorador de servidores.The following illustration shows the designer after the Northwind Customers and Orders tables have been dragged from Server Explorer. Tenga en cuenta la relación entre las tablas.Note the relationship between the tables.

Diseñador LINQ to SQLLINQ to SQL Designer

Importante

El Object Relational DesignerO/R Designer es un asignador relacional de objetos simple porque admite únicamente relaciones de asignación 1:1.The Object Relational DesignerO/R Designer is a simple object relational mapper because it supports only 1:1 mapping relationships. 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.In other words, an entity class can have only a 1:1 mapping relationship with a database table or view. No se admiten asignaciones complejas, como la asignación de una clase de entidad para una tabla combinada, utilizar Entity Framework para la asignación compleja.Complex mapping, such as mapping an entity class to a joined table, is not supported; use the Entity Framework for complex mapping. Además, el diseñador es un generador de código unidireccional.Additionally, the designer is a one-way code generator. Esto significa que solo se reflejan en el archivo de código los cambios que se realizan en la superficie del diseñador.This means that only changes that you make to the designer surface are reflected in the code file. Los cambios realizados manualmente en el archivo de código no se reflejan en el Object Relational DesignerO/R Designer.Manual changes to the code file are not reflected in the Object Relational DesignerO/R 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.Any changes that you make manually in the code file are overwritten when the designer is saved and code is regenerated. Para obtener información acerca de cómo agregar código de usuario y extender las clases generadas por el Object Relational DesignerO/R Designer, consulte Cómo: ampliar código generado por el Object Relational Designer.For information about how to add user code and extend the classes generated by the Object Relational DesignerO/R Designer, see How to: Extend Code Generated by the O/R Designer.

Crear y configurar DataContextCreating and Configuring the DataContext

Después de agregar un clases LINQ to SQL elemento a un proyecto y abra el Object Relational DesignerO/R Designer, la superficie de diseño vacía representa vacío DataContext listo para configurarlo.After you add a LINQ to SQL Classes item to a project and open the Object Relational DesignerO/R Designer, the empty design surface represents an empty DataContext ready to be configured. el DataContext está configurado con información de conexión proporcionada por el primer elemento que se arrastra hasta la superficie de diseño...the DataContext is configured with connection information provided by the first item that is dragged onto the design surface.. Por lo tanto, el DataContext se configura con información de conexión desde el primer elemento que se coloca en la superficie de diseño.Therefore, the DataContext is configured by using connection information from the first item dropped onto the design surface. Para obtener más información sobre la DataContext , vea clase métodos DataContext (Object Relational Designer).For more information about the DataContext class see, DataContext Methods (O/R Designer).

Crear clases de entidad que se asignan a tablas y vistas de base de datosCreating Entity Classes That Map to Database Tables and Views

Puede crear las clases de entidad asignadas a tablas y vistas arrastrando tablas de base de datos y vistas de Explorador de servidores/el Explorador de base de datos en el Object Relational DesignerO/R Designer.You can create entity classes mapped to tables and views by dragging database tables and views from Server Explorer/Database Explorer onto the Object Relational DesignerO/R Designer. 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.As indicated in the previous section the DataContext is configured with connection information provided by the first item that is dragged onto the design surface. Si se agrega al Object Relational DesignerO/R Designer un elemento subsiguiente que use otra conexión, se puede cambiar la conexión para DataContext.If a subsequent item that uses a different connection is added to the Object Relational DesignerO/R Designer, you can change the connection for the DataContext. Para obtener más información, consulte Cómo: crear clases de LINQ to SQL asignadas a tablas y vistas (Object Relational Designer).For more information, see How to: Create LINQ to SQL classes mapped to tables and views (O/R Designer).

Crear métodos de DataContext que llamen a procedimientos almacenados y funcionesCreating DataContext Methods That Call Stored Procedures and Functions

Puede crear DataContext métodos que llaman (estén asignados) los procedimientos almacenados y funciones arrastrándolos desde Explorador de servidores/el Explorador de base de datos en la Object Relational DesignerO/R Designer.You can create DataContext methods that call (are mapped to) stored procedures and functions by dragging them from Server Explorer/Database Explorer onto the Object Relational DesignerO/R Designer. Los procedimientos almacenados y funciones se agregan al Object Relational DesignerO/R Designer como métodos de DataContext.Stored procedures and functions are added to the Object Relational DesignerO/R Designer as methods of the DataContext.

Nota

Al arrastrar los procedimientos almacenados y funciones de Explorador de servidores/el Explorador de base de datos en el Object Relational DesignerO/R Designer, el tipo de valor devuelto de generado DataContext difiere del método Dependiendo de dónde colocar el elemento.When you drag stored procedures and functions from Server Explorer/Database Explorer onto the Object Relational DesignerO/R Designer, the return type of the generated DataContext method differs depending on where you drop the item. Para obtener más información, consulte métodos DataContext (Object Relational Designer).For more information, see DataContext Methods (O/R Designer).

Configurar DataContext de modo que se usen los procedimientos almacenados para guardar los datos entre las clases de entidad y una base de datosConfiguring a DataContext to Use Stored Procedures to Save Data Between Entity Classes and a Database

Como se ha indicado anteriormente, puede crear métodos de DataContext que llamen a los procedimientos almacenados y funciones.As stated earlier, you can create DataContext methods that call stored procedures and functions. 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 SQLLINQ to SQL en materia de inserciones, actualizaciones y eliminaciones.Additionally, you can also assign stored procedures that can be used for the default LINQ to SQLLINQ to SQL runtime behavior that performs Inserts, Updates, and Deletes. Para obtener más información, consulte Cómo: asignar procedimientos almacenados para realizar actualizaciones, inserciones y eliminaciones (Object Relational Designer).For more information, see How to: Assign stored procedures to perform updates, inserts, and deletes (O/R Designer).

Herencia y Object Relational DesignerInheritance and the O/R Designer

Al igual que otros objetos, las clases de LINQ to SQLLINQ to SQL pueden usar la herencia y derivarse de otras clases.Like other objects, LINQ to SQLLINQ to SQL classes can use inheritance and be derived from other classes. En una base de datos, las relaciones de herencia se crean de varias maneras.In a database, inheritance relationships are created in several ways. El Object Relational DesignerO/R Designer admite el concepto de la herencia de tabla única normalmente implementada en los sistemas relacionales.The Object Relational DesignerO/R Designer supports the concept of single-table inheritance as it is often implemented in relational systems. Para obtener más información, consulte Cómo: configurar la herencia utilizando Object Relational Designer.For more information, see How to: Configure inheritance by using the O/R Designer.

Consultas de LINQ to SQLLINQ to SQL Queries

Las clases de entidad creadas por la Object Relational DesignerO/R Designer están diseñados para su uso con LINQ (Language-Integrated Query).The entity classes created by the Object Relational DesignerO/R Designer are designed for use with LINQ (Language-Integrated Query). Para obtener más información, consulte Cómo: consultar información.For more information, see How to: Query for Information.

Separar la clase DataContext generada y el código de clase de entidad en espacios de nombres distintosSeparating the Generated DataContext and Entity Class Code into Different Namespaces

El Object Relational DesignerO/R Designer proporciona el contexto Namespace y entidad Namespace propiedades en el DataContext.The Object Relational DesignerO/R Designer provides the Context Namespace and Entity Namespace properties on the DataContext. Estas propiedades determinan en qué espacio de nombres se generan la clase DataContext y el código de clase de entidad.These properties determine what namespace the DataContext and entity class code is generated into. 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.By default, these properties are empty and the DataContext and entity classes are generated into the application's namespace. Para compilar el código en un espacio de nombres distinto del espacio de nombres de la aplicación, escriba un valor en el contexto Namespace o entidad Namespace propiedades.To generate the code into a namespace other than the application's namespace, enter a value into the Context Namespace and/or Entity Namespace properties.

Contenido de referenciaReference content

System.Linq
System.Data.Linq

Vea tambiénSee also

LINQ to SQL (.NET Framework) LINQ to SQL (.NET Framework)
(.NET Framework) de preguntas más frecuentesFrequently Asked Questions (.NET Framework)