2010-10-14 6 views
0

J'essaie de supprimer un objet qui a parfois une relation plusieurs-à-plusieurs. Le code que j'utilise maintenant est:Supprimer un objet et sa relation plusieurs-à-plusieurs

db.DeleteObject(registeredDevice); 
db.SaveChanges(); 

Ceci supprime simplement le deviceDevice. Mais généralement, cet appareil a une relation plusieurs-à-plusieurs avec un projet dans la base de données. Lorsque vous essayez de supprimer le périphérique dans ce scénario, il va donner une erreur.

L'instruction DELETE en conflit avec la contrainte RÉFÉRENCE

Ce que je dois faire est de retirer le dispositif et sa relation (l'entrée dans le nombre à plusieurs tables, et non le projet, il est lié à) . Comment faire cela avec LINQ?

+0

Voir ce post .... Il contient la réponse éprouvée .. –

Répondre

0

Pour tout supprimer, vous devez vous assurer que toutes les données sont chargées. Fondamentalement, linq à sql doit connaître les données qu'il supprime avant de faire le meilleur jugement sur la façon de les supprimer.

Hoep qui aide

+0

Oui, vous avez raison. Mais mon problème n'est pas encore résolu. Ce que nous faisons maintenant, c'est essayer et réinitialiser le deviceId dans la table ProjectDevice à null. Je dois complètement supprimer le disque. Donc, ce serait la clé primaire et les 2 clés étrangères (DeviceId et ProjectId). Après votre suggestion j'ai ajouté ce code btw: registeredDevice.ProjectDevice.Load(); – Prd

Questions connexes