Ho un'entità che ha una relazione usando FK ProductId, quindi ho un'altra relazione sulla stessa entità usando le chiavi composite ProductId e VehicleId. Questo non funziona. ottengo
Uno o più errori di convalida sono stati rilevati durante la generazione del modello:
ProductId: Name: ciascun nome di proprietà in un tipo deve essere univoco. Il nome della proprietà 'ProductId' è già definito.
Codice di configurazione
public class BookingConfiguration : EntityTypeConfiguration<Booking>
{
public BookingConfiguration()
{
...
HasRequired(b => b.Product)
.WithMany(p => p.Bookings)
.Map(m =>
{
m.MapKey("ProductId");
});
HasRequired(b => b.Vehicle)
.WithMany(v => v.Bookings)
.Map(m =>
{
m.MapKey("ProductId","VehicleId");
});
}
}
Steve Greene mi ha messo sulla strada giusta, ho aggiunto ProductId
e VehicleId
e usato
HasRequired(b => b.Vehicle)
.WithMany()
.HasForeignKey(b => new {b.ProductId, b.VehicleId});
In una prospettiva di dominio non mi piace aggiungere le chiavi esterne all'entità, quindi se qualcuno ha una soluzione migliore per favore fatemelo sapere.