Share via


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, vea Cómo: Generar el modelo de objetos en Visual Basic o C# (LINQ to SQL).

Los desarrolladores que utilizan Visual Studio suelen realizar la asignación basada en atributos con el Object Relational Designer. Para obtener más información, vea Diseñador relacional de objetos (Diseñador R/O) y Object Relational Designer y Object Relational Designer. también se puede usar la línea de comandos de SQLMetal o puede incluir los atributos en el código manualmente. Para obtener más información, vea Cómo: Generar el modelo de objetos en Visual Basic o C# (LINQ to SQL).

NotaNota

También puede realizar la asignación utilizando un archivo XML externo.Para obtener más información, vea 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.

Propiedad

Tipo

Valor predeterminado

Descripción

Name

String

Vea Name.

Cuando se usa con su propiedad Name, especifica el nombre de la base de datos.

Para obtener más información, vea 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.

Propiedad

Tipo

Valor predeterminado

Descripción

Name

String

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, vea 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.

Solo 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.

Propiedad

Tipo

Valor predeterminado

Descripción

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

String

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

String

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, vea ColumnAttribute.

NotaNota

Los valores de propiedad AssociationAttribute y ColumnAttribute Storage distinguen entre mayúsculas y minúsculas.Por ejemplo, asegúrese de que los valores utilizados en el atributo de la propiedad AssociationAttribute.Storage coinciden con el uso de mayúsculas y minúsculas para los nombres de propiedad correspondientes del resto del código.Esto se aplica a todos los lenguajes de programación de .NET, incluso a los que típicamente no distinguen entre mayúsculas y minúsculas, como Visual Basic.Para obtener más información acerca de la propiedad Storage, vea DataAttribute.Storage.

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.

Propiedad

Tipo

Valor predeterminado

Descripción

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

String

Ninguno

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

String

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

String

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, vea AssociationAttribute.

NotaNota

Los valores de propiedad AssociationAttribute y ColumnAttribute Storage distinguen entre mayúsculas y minúsculas.Por ejemplo, asegúrese de que los valores utilizados en el atributo de la propiedad AssociationAttribute.Storage coinciden con el uso de mayúsculas y minúsculas para los nombres de propiedad correspondientes del resto del código.Esto se aplica a todos los lenguajes de programación de .NET, incluso a los que típicamente no distinguen entre mayúsculas y minúsculas, como Visual Basic.Para obtener más información acerca de la propiedad Storage, vea DataAttribute.Storage.

Atributo InheritanceMappingAttribute

Utilice este atributo para asignar una jerarquía de herencia.

En la tabla siguiente se describen las propiedades de este atributo.

Propiedad

Tipo

Valor predeterminado

Descripción

Code

String

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, vea 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.

Propiedad

Tipo

Valor predeterminado

Descripción

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

String

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, vea 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.

Propiedad

Tipo

Valor predeterminado

Descripción

DbType

String

Ninguno

Especifica el tipo de base de datos.

Name

String

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, vea ParameterAttribute.

Atributo ResultTypeAttribute

Utilice este atributo para especificar un tipo de resultado.

En la tabla siguiente se describen las propiedades de este atributo.

Propiedad

Tipo

Valor predeterminado

Descripción

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, vea 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.

Propiedad

Tipo

Valor predeterminado

Descripción

Name

String

Igual que el nombre en la base de datos

Especifica el nombre de la tabla, columna, etc.

Storage

String

Descriptores de acceso públicos

Especifica el nombre del campo de almacenamiento subyacente.

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

Vea también

Otros recursos

Referencia (LINQ to SQL)