Anotaciones Entidades
EF Core proporciona una serie de anotaciones que se pueden usar para personalizar el comportamiento del marco. Estas anotaciones se pueden usar para definir las propiedades de las entidades, configurar las relaciones entre las entidades, o proporcionar información adicional sobre el esquema de la base de datos.
Anotaciones de propiedades
Las anotaciones de propiedades se usan para definir las propiedades de las entidades. Estas anotaciones pueden usarse para especificar el tipo de datos de la propiedad, si la propiedad es obligatoria o no, o si la propiedad se genera automáticamente.
Ejemplo de anotación de tipo de datos:
[Key]
public int Id { get; set; }
Esta anotación especifica que la propiedad Id
es de tipo int
y que es la clave principal de la entidad.
Ejemplo de anotación de obligatoriedad:
[Required]
public string Nombre { get; set; }
Esta anotación especifica que la propiedad Nombre
es obligatoria.
Ejemplo de anotación de generación automática:
[Generated]
public DateTime FechaCreacion { get; set; }
Esta anotación especifica que la propiedad FechaCreacion
se genera automáticamente.
Anotaciones de relaciones
Las anotaciones de relaciones se usan para definir las relaciones entre las entidades. Estas anotaciones pueden usarse para especificar el tipo de relación, la clave externa de la propiedad relacionada, o si la relación es bidireccional o unidireccional.
Ejemplo de anotación de tipo de relación:
[OneToMany(cascade = CascadeType.Cascade)]
public List<Pedido> Pedidos { get; set; }
Esta anotación especifica que la relación entre la entidad Cliente
y la entidad Pedido
es de tipo uno a muchos.
Ejemplo de anotación de clave externa:
[ForeignKey("ClienteId")]
public int ClienteId { get; set; }
Esta anotación especifica que la clave externa de la propiedad ClienteId
es la columna ClienteId
de la tabla Clientes
.
Ejemplo de anotación de direccionalidad:
[ManyToOne(cascade = CascadeType.Cascade)]
public Cliente Cliente { get; set; }
Esta anotación especifica que la relación entre la entidad Pedido
y la entidad Cliente
es de tipo muchos a uno y que la relación es bidireccional.
Anotaciones de esquema
Las anotaciones de esquema se usan para proporcionar información adicional sobre el esquema de la base de datos. Estas anotaciones se pueden usar para especificar el nombre de la tabla, el nombre de la columna, o el tipo de datos de la columna.
Ejemplo de anotación de nombre de tabla:
[Table("Clientes")]
public class Cliente
{
...
}
Esta anotación especifica que la entidad Cliente
se mapea a la tabla Clientes
en la base de datos.
Ejemplo de anotación de nombre de columna:
[Column("NombreCliente")]
public string Nombre { get; set; }
Esta anotación especifica que la propiedad Nombre
se mapea a la columna NombreCliente
en la base de datos.
Ejemplo de anotación de tipo de datos de columna:
[Column("NombreCliente", type: "nvarchar(100)")]
public string Nombre { get; set; }
Esta anotación especifica que la propiedad Nombre
se mapea a la columna NombreCliente
en la base de datos, y que el tipo de datos de la columna es nvarchar(100)
.
Otras anotaciones
EF Core también proporciona otras anotaciones que se pueden usar para personalizar el comportamiento del marco. Estas anotaciones incluyen:
- [HasOne]: Se usa para definir una relación uno a uno.
- [HasMany]: Se usa para definir una relación muchos a uno.
- [ManyToMany]: Se usa para definir una relación muchos a muchos.
- [Index]: Se usa para crear un índice en una columna o un conjunto de columnas.
- [Unique]: Se usa para crear una restricción de unicidad en una columna o un conjunto de columnas.
- [ForeignKeyConstraint]: Se usa para crear una restricción de clave externa en una columna o un conjunto de columnas.
Para obtener más información sobre las anotaciones de EF Core, puede consultar la documentación oficial
https://learn.microsoft.com/es-es/ef/ef6/modeling/code-first/data-annotations