J'ai deux tables dans une base de données existante (MSSQL 2008 R2) qui sont liées par une table de liens.Comment mettre en cascade des suppressions dans une table de liens en utilisant l'API EF4 couramment?
Les deux tables sont "Plan" et "Conseils". La table de liens est "PlanTipLinks".
Les plans peuvent avoir de nombreux conseils, et des conseils peuvent être associés à plusieurs plans (c'est-à-dire, une relation plusieurs-à-plusieurs). Dans l'application, je me soucie uniquement de la relation "Plan.Tips". Je n'ai pas besoin de la relation inverse Tip.Plans.
Les références de clé étrangère dans la table de liens ne peuvent pas être nulles.
J'utilise le code API couramment suivante pour mapper cette relation:
modelBuilder.Entity<Plan>()
.HasMany(p => p.Tips)
.WithMany()
.Map("PlanTipLinks", (p, t) =>
new
{
PlanId = p.Id,
TipId = t.Id
});
Ce créer les entrées correctes dans le tableau. Le problème est que, lorsque je supprime un plan, j'obtiens une exception de clé étrangère sur la table PlanTipLinks. Je suppose que je dois lui dire de cascade dans la table PlanTipLinks lorsqu'un plan est supprimé, mais je ne sais pas comment faire cela. Je ne semble pas pouvoir appeler la méthode WillCascadeOnDelete en utilisant les méthodes HasMany/WithMany.
Qu'est-ce qui me manque ici?
@dommer, comment ce vous aider réponse, comme vous avez écrit « Le problème est que, lorsque je supprime un plan, je reçois une exception de clé étrangère sur la table PlanTipLinks. "? Cette réponse suggère qu'une exception ne se produirait pas. –