我有这些实体:
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) - 找到了孩子 记录
我已经看过一些例子,到目前为止堆栈溢出,但我不知道我做错了什么。
在这种情况下进行级联删除的正确方法是什么?