J'ai deux tables dans une base de données existante (MSSQL 2008 R2) qui sont reliées par une table de liens.
Les deux tableaux sont "Plan" et "Tips". La table des liens est "PlanTipLinks".
Les plans peuvent avoir de nombreux conseils, et les conseils peuvent être associés à plusieurs plans (c'est-à-dire qu'il s'agit d'une relation many-to-many). Dans l'application, je ne m'intéresse qu'à la relation "Plan.Tips". Je n'ai pas besoin de la relation inverse Tip.Plans.
Les références de la clé étrangère dans la table de liaison ne peuvent pas être nulles.
J'utilise le code API fluide suivant pour mapper cette relation :
modelBuilder.Entity<Plan>()
.HasMany(p => p.Tips)
.WithMany()
.Map("PlanTipLinks", (p, t) =>
new
{
PlanId = p.Id,
TipId = t.Id
});
Cela crée 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 dois vraisemblablement lui demander de se déplacer en cascade dans la table PlanTipLinks lorsqu'un plan est supprimé, mais je ne sais pas comment procéder. Je ne semble pas être en mesure d'appeler la méthode WillCascadeOnDelete à l'aide des méthodes HasMany/WithMany.
Qu'est-ce que je rate ici ?