У меня есть следующие объекты:
public class Ranking
{
[Key]
public int Id { get; set; }
public virtual IList<FeederRanking> FeederRanking { get; set; }
}
public class FeederRanking
{
[Key]
public int Id { get; set; }
public int RankingId { get; set; }
[ForeignKey("RankingId")]
public virtual Ranking Ranking { get; set; }
public long ResultId { get; set; }
[ForeignKey("ResultId")]
public virtual StudyResult StudyResult { get; set; }
}
public class StudyResult
{
.....
}
Контекст базы данных:
modelBuilder.Entity<FeederRanking>()
.HasRequired(f => f.Ranking)
.WithMany(f => f.FeederRanking)
.HasForeignKey(f => f.RankingId)
.WillCascadeOnDelete(true);
Метод, отвечающий за исключение:
public void Exclude(long idExclude)
{
Ranking modelExclude = this.FindById(idExclude);
try
{
Delete(modelExclude);
Save();
}
catch (DbUpdateException ex)
{
throw ex;
}
}
public virtual void Delete(T entity)
{
this.GetQuery.Remove(entity);
}
public virtual void Save()
{
this.Context.SaveChanges();
}
Мне нужно удалить Рейтинги и FeedersRanking , но я получил исключение:
ограничение целостности (BD.FK2_FEEDER_RANKING) нарушено -локализованная дочерняя запись
Я видел примеры, до сих пор в переполнении стека, но я не знаю, что я делаю неправильно.
Как правильносделать каскадное удаление в этой ситуации?