c# - 删除级联不起作用
问题描述
我有这些实体:
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();
}
我需要删除我的Rankings和FeedersRanking,但我收到了异常:
违反完整性约束 (BD.FK2_FEEDER_RANKING) - 找到子记录
到目前为止,我已经看到了堆栈溢出的示例,但我不知道我做错了什么。
在这种情况下进行级联删除的正确方法是什么?
解决方案
推荐阅读
- mysql - 如何在此查询中使用存在?
- terraform - 使用 Terraform 仅定位一个实例,而不涉及不相关的资源
- python - 数据框中连续重复元素的对应列的总和
- cypress - 有没有办法在 CYPRESS HOOKS 中注册任何事件侦听器,它在整个测试执行过程中侦听该特定事件
- django - 如何将查询集实例转换为字典 Django
- javascript - 模态不再关闭
- c++ - C++中的高斯模糊
- highcharts - Highcharts plotOptions.series.compare='percent' 呈现空白
- vue.js - 如何在 Vue.js 中设置多行标题 v-toolbar?
- java - org.testng.TestNGException:无法实例化类原因:java.lang.reflect.InvocationTargetException