Compartir a través de


Asignación basada en atributos

LINQ to SQL asigna una base de datos de SQL Server a un modelo de objetos LINQ to SQL mediante la aplicación de atributos o mediante 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 DataContext, una tabla a una clase, y columnas y relaciones a las propiedades de esas clases. También puede usar atributos para asignar una jerarquía de herencia en el modelo de objetos. Para obtener más información, vea Cómo: Generar el modelo de objetos en Visual Basic o C#.

Normalmente, los desarrolladores que usan Visual Studio realizan asignaciones basadas en atributos mediante el Diseñador relacional de objetos. También puede usar la herramienta de línea de comandos SQLMetal o puede codificar manualmente los atributos usted mismo. Para obtener más información, vea Cómo: Generar el modelo de objetos en Visual Basic o C#.

Nota:

También puede mapear utilizando un archivo XML externo. Para más información, consulta Asignación externa.

En las secciones siguientes se describe la asignación basada en atributos con más detalle. Para obtener más información, vea el espacio de nombres System.Data.Linq.Mapping.

Atributo DatabaseAttribute

Use este atributo para especificar el nombre predeterminado de la base de datos cuando la conexión no proporcione un nombre. Este atributo es opcional, pero si lo usa, debe aplicar la Name propiedad , como se describe en la tabla siguiente.

Propiedad Tipo Predeterminado Descripción
Name Cuerda Vea Name. Se usa con su Name propiedad , especifica el nombre de la base de datos.

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

Atributo TableAttribute

Use este atributo para designar una clase como una clase de entidad 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 Name propiedad .

Propiedad Tipo Predeterminado Descripción
Name Cuerda Misma cadena que el nombre de clase Designa una clase como una clase de entidad asociada a una tabla de base de datos.

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

Atributo ColumnAttribute

Use este atributo para designar un miembro de una clase de entidad para representar una columna en una tabla de base de datos. Puede aplicar este atributo a cualquier campo o propiedad.

Solo los miembros que identifique como columnas se recuperan y conservan cuando LINQ to SQL guarda los cambios en la base de datos. Se asume que los miembros sin este atributo no son persistentes y no se incluyen para inserciones o actualizaciones.

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

Propiedad Tipo Predeterminado Descripción
AutoSync AutoSincronización 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 Booleano true Indica que una columna puede contener valores NULL.
DbType Cuerda Tipo de columna de base de datos inferida Usa los tipos y modificadores de base de datos para especificar el tipo de la columna de base de datos.
Expression Cuerda Vacío Define una columna calculada en una base de datos.
IsDbGenerated Booleano false Indica que una columna contiene valores que la base de datos genera automáticamente.
IsDiscriminator Booleano false Indica que la columna contiene un valor de discriminador para una jerarquía de herencia de LINQ to SQL.
IsPrimaryKey Booleano false Especifica que este miembro de clase representa una columna que es o forma parte de las claves principales de la tabla.
IsVersion Booleano false Identifica el tipo de columna de un miembro como una marca de tiempo en la base de datos o un número de versión.
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.

Nota:

Los valores de propiedad AssociationAttribute y ColumnAttribute Storage distinguen entre mayúsculas y minúsculas. Por ejemplo, asegúrese de que los valores usados en el atributo para la propiedad AssociationAttribute.Storage coincidan con el caso de los nombres de propiedad correspondientes usados en otro lugar del código. Esto se aplica a todos los lenguajes de programación de .NET, incluso aquellos que normalmente no distinguen mayúsculas de minúsculas, incluido Visual Basic. Para obtener más información acerca de la propiedad Storage, vea DataAttribute.Storage.

Atributo AssociationAttribute

Use este atributo para designar una propiedad para representar una asociación en la base de datos, como una clave externa a la relación de clave principal. Para obtener más información sobre las relaciones, vea Cómo: Asignar relaciones de base de datos.

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

Propiedad Tipo Predeterminado Descripción
DeleteOnNull Booleano 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 Cuerda Ninguno Agrega el comportamiento de eliminación a una asociación.
IsForeignKey Booleano 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 Booleano false Si es verdadero, indica una restricción única en la clave foránea.
OtherKey Cuerda ID de la clase relacionada Designa uno o varios miembros de la clase de entidad de destino como valores clave en el otro lado de la asociación.
ThisKey Cuerda ID de la clase contenedora Designa miembros de esta clase de entidad para representar los valores de clave en este lado de la asociación.

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

Nota:

Los valores de propiedad AssociationAttribute y ColumnAttribute Storage distinguen entre mayúsculas y minúsculas. Por ejemplo, asegúrese de que los valores usados en el atributo para la propiedad AssociationAttribute.Storage coincidan con el caso de los nombres de propiedad correspondientes usados en otro lugar del código. Esto se aplica a todos los lenguajes de programación de .NET, incluso aquellos que normalmente no distinguen mayúsculas de minúsculas, incluido Visual Basic. Para obtener más información acerca de la propiedad Storage, vea DataAttribute.Storage.

Atributo InheritanceMappingAttribute

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

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

Propiedad Tipo Predeterminado Descripción
Code Cuerda Ninguno. El valor debe suministrarse. Especifica el valor de código del discriminador.
IsDefault Booleano 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 Tipo 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

Use este atributo para designar un método como que representa 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 Predeterminado Descripción
IsComposable Booleano false Si es falso, indica la asignación a un procedimiento almacenado. Si es true, indica la asignación a una función definida por el usuario.
Name Cuerda Misma cadena que el nombre de 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 vincular parámetros de entrada en procedimientos almacenados.

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

Propiedad Tipo Predeterminado Descripción
DbType Cuerda Ninguno Especifica el tipo de base de datos.
Name Cuerda Misma cadena que el nombre de parámetro en la base de datos Especifica un nombre para el parámetro .

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

Atributo ResultTypeAttribute

Use este atributo para especificar un tipo de resultado.

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

Propiedad Tipo Predeterminado Descripción
Type Tipo (Ninguno) Se utiliza en los métodos asignados a los procedimientos almacenados que devuelven IMultipleResults. Declara los mapeos de tipos válidos o esperados para el procedimiento almacenado.

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

Atributo DataAttribute

Use este atributo para especificar nombres y campos de almacenamiento privado.

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

Propiedad Tipo Predeterminado Descripción
Name Cuerda Igual que el nombre en la base de datos Especifica el nombre de la tabla, columna, etc.
Storage Cuerda Descriptores de acceso públicos Especifica el nombre del campo de almacenamiento subyacente.

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

Consulte también