Asignación basada en atributos (LINQ to SQL)
LINQ to SQL asigna una base de datos de SQL Server a un modelo de objetos LINQ to SQL aplicando atributos o utilizando un archivo de asignación externo. En este tema se describe el enfoque basado en atributos.
En su forma más elemental, LINQ to SQL asigna una base de datos a un DataContext, una tabla a una clase y las columnas y relaciones a las propiedades de esas clases. También puede utilizar atributos para asignar una jerarquía de herencia en su modelo de objetos. Para obtener más información, consulte Cómo: Generar el modelo de objetos en Visual Basic o C# (LINQ to SQL).
Los programadores que utilizan Visual Studio normalmente realizan la asignación basada en atributos mediante el Diseñador relacional de objetos. También puede utilizar la herramienta de línea de comandos SQLMetal o puede incluir los atributos en el código usted mismo. Para obtener más información, consulte Cómo: Generar el modelo de objetos en Visual Basic o C# (LINQ to SQL).
Nota: |
---|
También puede realizar la asignación utilizando un archivo XML externo. Para obtener más información, consulte Referencia de asignación externa (LINQ to SQL). |
En las secciones siguientes se describe con más detalle la asignación basada en atributos. Para obtener más información, vea el espacio de nombres System.Data.Linq.Mapping.
Atributo DatabaseAttribute
Utilice este atributo para especificar el nombre predeterminado de la base de datos cuando la conexión no proporciona ningún nombre. Este atributo es opcional, pero, si lo utiliza, debe aplicar la propiedad Name, como se indica en la tabla siguiente.
Property |
Type |
Default |
Description |
---|---|---|---|
Cadena |
Vea Name. |
Cuando se usa con su propiedad Name, especifica el nombre de la base de datos. |
Para obtener más información, consulte DatabaseAttribute.
Atributo TableAttribute
Utilice este atributo para designar una clase como una clase de entidad que está asociada a una tabla o vista de base de datos. LINQ to SQL trata las clases que tienen este atributo como clases persistentes. En la tabla siguiente se describe la propiedad Name.
Property |
Type |
Default |
Description |
---|---|---|---|
Cadena |
La misma cadena que el nombre de clase |
Designa una clase como una clase de entidad que está asociada a una tabla de base de datos. |
Para obtener más información, consulte TableAttribute.
Atributo ColumnAttribute
Utilice este atributo para designar un miembro de una clase de entidad para que represente una columna de una tabla de base de datos. Este atributo se puede aplicar cualquier campo o propiedad.
Sólo los miembros que identifique como columnas se recuperarán y conservarán cuando LINQ to SQL guarde los cambios en la base de datos. Se supone que los miembros que no tienen este atributo no son persistentes y no se envían para operaciones de inserción o actualización.
En la tabla siguiente se describen las propiedades de este atributo.
Property |
Type |
Default |
Description |
---|---|---|---|
AutoSync |
Nunca |
Indica a Common Language Runtime (CLR) que recupere el valor después de una operación de inserción o actualización. Opciones: Always, Never, OnUpdate, OnInsert. |
|
Boolean |
true |
Indica que una columna puede contener valores nulos. |
|
Cadena |
Tipo de columna de base de datos deducido |
Utiliza tipos de base de datos y modificadores para especificar el tipo de la columna de base de datos. |
|
Cadena |
Vacío |
Define una columna calculada en una base de datos. |
|
Boolean |
false |
Indica que una columna contiene valores que la base de datos genera automáticamente. |
|
Boolean |
false |
Indica que la columna contiene un valor de discriminador para una jerarquía de herencia de LINQ to SQL. |
|
Boolean |
false |
Especifica que este miembro de clase representa una columna que es o forma parte de las claves principales de la tabla. |
|
Boolean |
false |
Identifica el tipo de columna del miembro como una marca de tiempo o número de versión de la base de datos. |
|
UpdateCheck |
Always, a menos que IsVersion sea true para un miembro |
Especifica cómo se plantea LINQ to SQL la detección de conflictos de simultaneidad optimista. |
Para obtener más información, consulte ColumnAttribute.
Atributo AssociationAttribute
Utilice este atributo para designar una propiedad que represente una asociación en la base de datos, como una relación entre clave externa y clave principal. Para obtener más información sobre las relaciones, vea Cómo: Asignar relaciones de base de datos (LINQ to SQL).
En la tabla siguiente se describen las propiedades de este atributo.
Property |
Type |
Default |
Description |
---|---|---|---|
Boolean |
false |
Cuando se coloca en una asociación cuyos miembros de clave externa no aceptan valores Null, elimina el objeto cuando la asociación está establecida en null. |
|
Cadena |
Ninguna |
Agrega comportamiento de eliminación a una asociación. |
|
Boolean |
false |
Si es verdadero, designa el miembro como la clave externa de una asociación que representa una relación de base de datos. |
|
Boolean |
false |
Si es verdadero, indica una restricción de unicidad en la clave externa. |
|
Cadena |
Identificador de la clase relacionada. |
Designa uno o más miembros de la clase de entidad de destino como valores de clave en el otro lado de la asociación. |
|
Cadena |
Identificador de la clase contenedora |
Designa miembros de esta clase de entidad para que representen los valores de clave en este lado de la asociación. |
Para obtener más información, consulte AssociationAttribute.
Atributo InheritanceMappingAttribute
Utilice este atributo para asignar una jerarquía de herencia.
En la tabla siguiente se describen las propiedades de este atributo.
Property |
Type |
Default |
Description |
---|---|---|---|
Cadena |
Ninguno El valor debe suministrarse. |
Especifica el valor de código del discriminador. |
|
Boolean |
false |
Si es verdadero, crea instancias de un objeto de este tipo cuando ningún valor de discriminador del almacén coincide con ninguno de los valores especificados. |
|
Type |
Ninguno El valor debe suministrarse. |
Especifica el tipo de la clase en la jerarquía. |
Para obtener más información, consulte InheritanceMappingAttribute.
Atributo FunctionAttribute
Utilice este atributo para designar un método para representar un procedimiento almacenado o una función definida por el usuario en la base de datos.
En la tabla siguiente se describen las propiedades de este atributo.
Property |
Type |
Default |
Description |
---|---|---|---|
Boolean |
false |
Si es falso, indica la asignación a un procedimiento almacenado. Si es verdadero, indica la asignación a una función definida por el usuario. |
|
Cadena |
La misma cadena que el nombre en la base de datos |
Especifica el nombre del procedimiento almacenado o la función definida por el usuario. |
Para obtener más información, consulte FunctionAttribute.
Atributo ParameterAttribute
Utilice este atributo para asignar parámetros de entrada en métodos de procedimiento almacenado.
En la tabla siguiente se describen las propiedades de este atributo.
Property |
Type |
Default |
Description |
---|---|---|---|
Cadena |
Ninguna |
Especifica el tipo de base de datos. |
|
Cadena |
La misma cadena que el nombre del parámetro en la base de datos |
Especifica un nombre para el parámetro. |
Para obtener más información, consulte ParameterAttribute.
Atributo ResultTypeAttribute
Utilice este atributo para especificar un tipo de resultado.
En la tabla siguiente se describen las propiedades de este atributo.
Property |
Type |
Default |
Description |
---|---|---|---|
Type |
(Ninguno) |
Se utiliza en los métodos asignados a los procedimientos almacenados que devuelven IMultipleResults. Declara las asignaciones de tipos válidas o esperadas para el procedimiento almacenado. |
Para obtener más información, consulte ResultTypeAttribute.
Atributo DataAttribute
Utilice este atributo para especificar nombres y campos de almacenamiento privados.
En la tabla siguiente se describen las propiedades de este atributo.
Property |
Type |
Default |
Description |
---|---|---|---|
Cadena |
Igual que el nombre en la base de datos |
Especifica el nombre de la tabla, columna, etc. |
|
Cadena |
Descriptores de acceso públicos |
Especifica el nombre del campo de almacenamiento subyacente. |
Para obtener más información, consulte DataAttribute.