Code First
Code First
Code First
Ejecutar Aplicación
1
Curso de Desarrollo Completo en ASP.NET MVC – para Udemy – de Ángel Arias
A continuación, vamos a ver una visión general de varias de las convenciones de Code
First.
Descubrimiento de Tipos
Al establecer una clase de contexto con las propiedades DbSet para las clases que
queremos que sean parte del modelo, Code First creará las tablas para las clases
incluidas como propiedades DbSet. Code First también incluye todos los tipos
referenciados incluidos en estas clases, incluso si los tipos referenciados se definen en
un ensamblado diferente.
1. Code First incluye tipos definidos como una propiedad DbSet en la clase de contexto.
2. Code First incluye los tipos de referencia incluidos en los tipos de entidad incluso si
se definen en un ensamblado diferente.
3. Code First incluye las clases derivadas incluso si sólo la clase base se define como
propiedad DbSet.
Clave Primaria
Code First crea automáticamente una clave primaria en cada tabla. La convención
predeterminada para la clave principal es que Code First creará una clave primaria para
una propiedad si el nombre de la propiedad es Id o el <nombre_clase> Id. El tipo de
datos de una propiedad que sea clave principal puede ser cualquier cosa, pero si el tipo
de la propiedad de clave principal es numérico o GUID, se configurará como una
columna de identidad.
2
Curso de Desarrollo Completo en ASP.NET MVC – para Udemy – de Ángel Arias
Convención de Relaciones
Code First infiere en la relación entre las dos entidades que utilizan la propiedad de
navegación. Esta propiedad de navegación puede ser un simple tipo de referencia o un
tipo de colección. Code First creará automáticamente la relación indicada en el modelo
insertando la columna de clave externa en la tabla indicada.
3
Curso de Desarrollo Completo en ASP.NET MVC – para Udemy – de Ángel Arias
4
Curso de Desarrollo Completo en ASP.NET MVC – para Udemy – de Ángel Arias
La siguiente tabla lista la asignación de tipo de datos C# con el tipo de datos SQL y el
tipo de datos y la longitud de la columna de clave principal.
5
Curso de Desarrollo Completo en ASP.NET MVC – para Udemy – de Ángel Arias
Lista de DataAnnotations
Class Description
AssociatedMetadataTypeTypeDescriptionProvider Extiende la información de
metadatos de una clase mediante
la adición de atributos e
información de propiedades que
se define en una clase asociada.
AssociationAttribute Especifica que un miembro de
entidad representa una relación
de datos, como una relación de
clave externa.
ConcurrencyCheckAttribute Especifica que una propiedad
participa en verificaciones de
concurrencia optimistas.
CustomValidationAttribute Especifica un método de
validación personalizado para
validar una instancia de
propiedad o clase.
DataTypeAttribute Especifica el nombre de un tipo
adicional para asociar con un
campo de datos.
DisplayAttribute Proporciona un atributo de
propósito general que le permite
especificar cadenas localizables
para tipos y miembros de clases
parciales de entidad.
DisplayColumnAttribute Especifica la columna que se
muestra en la tabla referida como
una columna de clave externa.
DisplayFormatAttribute Especifica cómo los campos de
datos se visualizan y formatean
mediante ASP.NET Dynamic Data.
EditableAttribute Indica si un campo de datos es
editable.
EnumDataTypeAttribute Habilita una enumeración de .NET
Framework para asignarse a una
columna de datos.
FilterUIHintAttribute Representa un atributo que se
utiliza para especificar el
comportamiento de filtrado de
una columna.
KeyAttribute Indica una o más propiedades que
identifican de manera única a una
entidad.
MetadataTypeAttribute Especifica la clase de metadatos a
asociar con una clase de modelo
de datos.
RangeAttribute Especifica las restricciones de
rango numérico para el valor de
6
Curso de Desarrollo Completo en ASP.NET MVC – para Udemy – de Ángel Arias
un campo de datos.
RegularExpressionAttribute Especifica que un valor de campo
de datos en ASP.NET Dynamic
Data debe coincidir con la
expresión regular especificada.
RequiredAttribute Especifica que se requiere un
valor de campo de datos.
ScaffoldColumnAttribute Especifica si una columna de clase
o de datos utiliza scaffolding.
ScaffoldTableAttribute Especifica si una tabla de clase o
de datos utiliza scaffolding.
StringLengthAttribute Especifica la longitud mínima y
máxima de caracteres permitidos
en un campo de datos.
TimestampAttribute Especifica el tipo de datos de la
columna como una versión de fila.
UIHintAttribute Especifica la plantilla o el control
de usuario que utiliza Dynamic
Data para mostrar un campo de
datos.
ValidationAttribute Sirve como clase base para todos
los atributos de validación.
ValidationContext Describe el contexto en el que se
realiza una comprobación de
validación.
ValidationException Representa la excepción que se
produce durante la validación de
un campo de datos cuando se
utiliza la clase ValidationAttribute.
ValidationResult Representa un contenedor para
los resultados de una solicitud de
validación.
Validator Define una clase auxiliar que se
puede utilizar para validar
objetos, propiedades y métodos
cuando se incluye en sus atributos
ValidationAttribute asociados.