Compartir a través de


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

Name

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

Name

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

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.

CanBeNull

Boolean

true

Indica que una columna puede contener valores nulos.

DbType

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.

Expression

Cadena

Vacío

Define una columna calculada en una base de datos.

IsDbGenerated

Boolean

false

Indica que una columna contiene valores que la base de datos genera automáticamente.

IsDiscriminator

Boolean

false

Indica que la columna contiene un valor de discriminador para una jerarquía de herencia de LINQ to SQL.

IsPrimaryKey

Boolean

false

Especifica que este miembro de clase representa una columna que es o forma parte de las claves principales de la tabla.

IsVersion

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

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

DeleteOnNull

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.

DeleteRule

Cadena

Ninguna

Agrega comportamiento de eliminación a una asociación.

IsForeignKey

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.

IsUnique

Boolean

false

Si es verdadero, indica una restricción de unicidad en la clave externa.

OtherKey

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.

ThisKey

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

Code

Cadena

Ninguno El valor debe suministrarse.

Especifica el valor de código del discriminador.

IsDefault

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

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

IsComposable

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.

Name

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

DbType

Cadena

Ninguna

Especifica el tipo de base de datos.

Name

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

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

Name

Cadena

Igual que el nombre en la base de datos

Especifica el nombre de la tabla, columna, etc.

Storage

Cadena

Descriptores de acceso públicos

Especifica el nombre del campo de almacenamiento subyacente.

Para obtener más información, consulte DataAttribute.

Vea también

Conceptos

Referencia (LINQ to SQL)