Entity Framework Code zuerst: Zyklen oder mehrere Kaskadenpfade

Ich habe eine Buchungsklasse mit einem Buchungskontakt (aPerson) und eine Reihe von Navigationseigenschaften People), das über eine Verknüpfungstabelle mit einer anderen Gruppe von Navigationseigenschaften verknüpft ist Bookings) imPerson. Wie erstelle ich dasBooking table mit aktivierten kaskadierenden Löschvorgängen für die Buchungskontaktbeziehung? Wenn ich den fließenden API-Code weglasse (Standardeinstellung für Kaskadenlöschung aktiviert), wird bei der Migration die folgende Fehlermeldung angezeigt:

Die Einführung der FOREIGN KEY-Einschränkung 'FK_dbo.BookingPeople_dbo.People_PersonID' in der Tabelle 'BookingPeople' kann zu Zyklen oder mehreren Kaskadenpfaden führen. Geben Sie ON DELETE NO ACTION oder ON UPDATE NO ACTION an oder ändern Sie andere FOREIGN KEY-Einschränkungen.

Bedingung oder Index konnte nicht erstellt werden. Siehe vorherige Fehler.

 modelBuilder.Entity<Person>()
   .HasMany<Booking>(s => s.aBookings)
   .WithRequired(s => s.Contact)
   .HasForeignKey(s => s.ContactId); 


 modelBuilder.Entity<Booking>()
   .HasMany(t => t.People)
   .WithMany(t => t.Bookings)
   .Map(m => {
     m.ToTable("BookingPeople");
     m.MapLeftKey("BookingID");
     m.MapRightKey("PersonID");
   });

Antworten auf die Frage(2)

Ihre Antwort auf die Frage