我有一个Booking类,其中包含一个预订联系人(Person)和一组导航属性(People),这些导航属性通过连接表链接到另一组导航属性(Bookings)中的Person。如何生成启用了预订联系人关系的级联删除的Booking表?当我在流畅API代码中将其省略时(默认设置为启用级联删除),我会从迁移中得到以下错误消息:
引入外键约束“FK_dbo.BookingPeople_dbo.People_PersonID”到表“BookingPeople”上可能会导致循环或多个级联路径。指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY约束。
无法创建约束或索引。请参阅前面的错误。
引入外键约束“FK_dbo.BookingPeople_dbo.People_PersonID”到表“BookingPeople”上可能会导致循环或多个级联路径。指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY约束。
无法创建约束或索引。请参阅前面的错误。
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");
});