Я не могу заставить каскадное удаление работать правильно. Это моя таблица внешних ключей:
public class CoverageLevel
{
public int Id { get; set; }
public virtual MedicalPlan MedicalPlan { get; set; } //foreign key
public virtual VisionPlan VisionPlan { get; set; } //foreign key
public virtual DentalPlan DentalPlan { get; set; } //foreign key
}
Есть три разных способа, которые я пробовал. Когда я не использую свободный API, он соответствующим образом настраивает таблицы и внешние ключи, но каскадное удаление не работает. Когда я использую этот код:
modelBuilder.Entity<MedicalPlan>().HasMany(t => t.CoverageLevels).WithOptional.WillCascadeOnDelete();
он создает второй столбец, поэтому у меня есть полностью нулевой MedicalPlan_Id
, а затем MedicalPlan_Id1
, который он заполняет. Когда я использую это:
modelBuilder.Entity<MedicalPlan>().HasMany(t => t.CoverageLevels).WithOptional().HasForeignKey(d => d.MedicalPlan).WillCascadeOnDelete();
Я получаю сообщение об ошибке при создании базы данных. Как правильно настроить каскадное удаление?