我有一个现有的(MSSQL 2008 R2)数据库中有一个链接表相关的两个表。如何使用EF4流利API级联删除链接表?
这两张表是“计划”和“提示”。链接表是“PlanTipLinks”。
计划可以有很多提示,并且提示可以与多个计划相关联(即它是多对多的关系)。在应用程序中,我只关心“Plan.Tips”关系。我不需要Tip.Plans的反向关系。
链接表中的外键引用不能为空。
我用下面的流畅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方法。
我在这里错过了什么?
@dommer,这究竟是怎么回答帮助你,因为你写了“问题是,当我删除一个计划,我得到PlanTipLinks表上的外键异常。“?这个答案表明不会发生异常。 – 2014-09-23 09:45:57