Relación de tablas 3
Estoy intentando establecer una relación entre 3 tablas en c#.
Mis modelos son:
Guitarra:
public class Guitarra
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[Required]
public int Id { get; set; }
[MaxLength(30)]
[Required]
public string Modelo { get; set; }
public int? Precio { get; set; }
[NotMapped]
public virtual Marca Marca { get; set; }
public int MarcaId { get; set; }
}
Marca:
public class Marca
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[Required]
public int Id { get; set; }
[Required]
public string Nombre { get; set; }
[NotMapped]
public virtual ICollection
public Marca()
{
Guitarras = new HashSet
}
}
Compra: (algunas propiedades pueden faltar aquí)
public class Compra
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[Required]
public int Id { get; set; }
[Required]
[MaxLength(40)]
public string NombreComprador { get; set; }
[NotMapped]
public virtual Guitarra Guitarra { get; set; }
public int GuitarraId { get; set; }
}
He logrado vincular las tablas de Guitarra y Marca, pero no puedo lidiar con la tercera.
Aquí está mi código hasta ahora:
modelBuilder.Entity
{
entity.HasOne(guitarra => guitarra.Marca)
.WithMany(brand => brand.Guitarras)
.HasForeignKey(guitarra => guitarra.MarcaId)
.OnDelete(DeleteBehavior.ClientSetNull);
});
La clave externa en la tabla Compra debería ser el ID de la guitarra, pero si tienes una mejor idea, estoy abierto a ella.
Entonces, ¿cómo hago lo mismo con las Compras?
davy.ai
Se puede vincular las tablas
Purchase
yGuitar
agregando una clave foránea en la tablaPurchase
que haga referencia a la columnaId
de la tablaGuitar
. Esto se puede hacer agregando el siguiente código a sumodelBuilder
: