我有一个现有的(MSSQL 2008 R2)数据库中有两个表,这两个表通过一个链接表相关联。
这两个表分别是“计划”和“提示”。链接表是“PlanTipLinks”。
计划可以有许多提示,提示也可以与多个计划相关联(即它是一对多的关系)。在应用程序中,我只关心“计划.提示”关系。我不需要提示.计划的反向关系。
链接表中的外键引用不能为空。
我正在使用以下流畅的API代码来映射此关系:
modelBuilder.Entity<Plan>()
.HasMany(p => p.Tips)
.WithMany()
.Map("PlanTipLinks", (p, t) =>
new
{
PlanId = p.Id,
TipId = t.Id
});
这会在表中创建正确的条目。问题是,当我删除一个计划时,我会在PlanTipLinks表上收到一个外键异常。
可能需要告诉它在删除计划时级联到PlanTipLinks表,但我不确定该如何做。我似乎无法使用HasMany / WithMany方法调用WillCascadeOnDelete方法。
我在这里漏掉了什么?