删除级联不起作用

时间:2018-05-23 16:42:50

标签: c# asp.net-mvc entity-framework

我有这些实体:

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) - 找到了孩子   记录

我已经看过一些例子,到目前为止堆栈溢出,但我不知道我做错了什么。

在这种情况下进行级联删除的正确方法是什么?

0 个答案:

没有答案