LINQ to SQL tools en Visual StudioLINQ to SQL tools in Visual Studio

LINQ to SQL era la primera tecnología de asignación relacional de objetos publicada por Microsoft.LINQ to SQL was the first object-relational mapping technology released by Microsoft. Funciona bien en escenarios básicos y sigue siendo compatible con Visual Studio, pero ya no está en desarrollo activo.It works well in basic scenarios and continues to be supported in Visual Studio, but it's no longer under active development. Usar LINQ to SQL al mantener una aplicación heredada que ya está usando, o en aplicaciones sencillas que usan SQL Server y no requieren la asignación de varias tabla.Use LINQ to SQL when maintaining a legacy application that's already using it, or in simple applications that use SQL Server and do not require multi-table mapping. En general, aplicaciones nuevas deben utilizar 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, cree LINQ a las clases SQL que representan las tablas SQL mediante el uso de la 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 Designer tiene dos áreas distintas en su superficie de diseño: el panel entidades de la izquierda y el panel de métodos de la derecha.The O/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 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.The O/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. En otras palabras, el Object Relational Designer crea un modelo de objetos en una aplicación que se asigna a los objetos en una base de datos.In other words, the O/R Designer creates an object model in an application that maps to objects in a database. También genera fuertemente tipadas DataContext que envía y recibe datos entre las clases de entidad y la base de datos.It also generates a strongly-typed DataContext that sends and receives data between the entity classes and the database. 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.The O/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 Designer permite diseñar relaciones de herencia entre clases de entidad.Finally, the O/R Designer provides the ability to design inheritance relationships between entity classes.

Abra el Object Relational designerOpen the O/R designer

Para agregar un LINQ al modelo de entity SQL al proyecto, elija proyecto > Agregar nuevo elementoy, a continuación, seleccione 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 select LINQ to SQL Classes from the list of project items:

Clases LINQ to SQL

Visual Studio crea un .dbml de archivo 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 XML y sus archivos de código relacionados.This is the XML mapping file and its related code files.

Clases LINQ to SQL en el Explorador de soluciones

Cuando se selecciona el .dbml de archivos, Visual Studio muestra el Object Relational Designer superficie 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. La siguiente ilustración muestra el diseñador después de Northwind Customers y Orders tablas que se han arrastrado desde 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 SQL

Importante

El Object Relational Designer es un asignador relacional de objetos simple porque admite únicamente relaciones de asignación 1:1.The O/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 a 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. No se reflejan los cambios manuales en el archivo de código en el Object Relational Designer.Manual changes to the code file are not reflected in the O/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 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 O/R Designer, see How to: Extend code generated by the O/R Designer.

Crear y configurar DataContextCreate and configure the 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.After you add a LINQ to SQL Classes item to a project and open the O/R Designer, the empty design surface represents an empty DataContext ready to be configured. 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.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 la 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 de base de datos y vistasCreate entity classes that map to database tables and views

Puede crear clases de entidad asignadas a tablas y vistas arrastrando tablas de base de datos y vistas de Explorador de servidores o Database Explorer hasta la Object Relational Designer.You can create entity classes mapped to tables and views by dragging database tables and views from Server Explorer or Database Explorer onto the O/R Designer. 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 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 un elemento subsiguiente que use otra conexión a la Object Relational Designer, puede cambiar la conexión para el DataContext.If a subsequent item that uses a different connection is added to the O/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 funcionesCreate DataContext methods that call stored procedures and functions

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

Nota

Cuando arrastre los procedimientos almacenados y funciones de Explorador de servidores o Database Explorer hasta la Object Relational Designer, el tipo de valor devuelto de generado DataContext método difiere según donde se coloque el elemento.When you drag stored procedures and functions from Server Explorer or Database Explorer onto the O/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 utilice procedimientos almacenados para guardar los datos entre las clases de entidad y una base de datosConfigure 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 procedimientos almacenados que se usan para el valor predeterminado LINQ al comportamiento en tiempo de ejecución de SQL, que realiza inserciones, actualizaciones y eliminaciones.Additionally, you can also assign stored procedures that are used for the default LINQ to SQL runtime behavior, which 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, clases LINQ to SQL puede usar la herencia y derivarse de otras clases.Like other objects, LINQ 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 Designer admite el concepto de herencia de tabla única normalmente implementada en los sistemas relacionales.The O/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 mediante Object Relational Designer.For more information, see How to: Configure inheritance by using the O/R Designer.

Consultas LINQ to SQLLINQ to SQL queries

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

Separar el código de clase DataContext y entidad generado en diferentes espacios de nombresSeparate the generated DataContext and entity class code into different namespaces

El Object Relational Designer proporciona el contexto Namespace y Namespace Entity propiedades en el DataContext.The O/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 generar 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 Namespace Entity 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

Vea tambiénSee also