Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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.