Удалить каскад не работает - PullRequest
0 голосов
/ 23 мая 2018

У меня есть следующие объекты:

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) нарушено -локализованная дочерняя запись

Я видел примеры, до сих пор в переполнении стека, но я не знаю, что я делаю неправильно.

Как правильносделать каскадное удаление в этой ситуации?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...