2010-09-01 3 views
1

Lors de la manipulation de données à l'aide de Linq, à quelle fréquence la méthode SubmitChanges() doit-elle être appelée?Fonction Linq SubmitChanges() - quand appeler?

Dans mon projet, il y a quelques tables liées aux clés étrangères. Dans la création SQL, ces clés étrangères sont contraintes de sorte qu'un enregistrement faisant partie d'une relation ne peut pas être supprimé sans que les enregistrements dépendants soient supprimés en premier.

Par conséquent, il existe un ordre spécifique dans lequel les enregistrements dans une relation doivent être supprimés. Devrai-je supprimer chaque enregistrement et exécuter une fonction SubmitChanges() sur la base de données à chaque fois, ou puis-je effectuer toutes les suppressions en une fois?

EDIT: Ma question principale est: Est-ce que les enregistrements sont supprimés sur SubmitChanges() dans le même ordre que vous les supprimez dans le code?

Répondre

1

Vous devriez essayer de l'appeler le moins possible, mais il existe un problème connu avec Linq2SQL lorsque vous insérez et supprimez qui remplace efficacement une entité. Dans ce cas, il est préférable de l'appeler dès que possible après la suppression et l'insertion suivante.

Voici un similar question que j'ai demandé il y a un moment.

+0

Donc, il serait OK pour supprimer tous les enregistrements liés en une seule fois, et l'ordre qu'ils sont supprimés sur SubmitChanges() est le même ordre que je mets dans le programme? – Greg

+1

@Greg: Non, l'ordre est déterminé par le DataContext. Normalement, Insérer -> Mise à jour -> Supprimer (je suis sûr que vous pouvez voir le problème). – leppie

0

Si vous devez supprimer un lot par ex. une seule transaction, vous ne devez appeler la méthode SubmitChanges qu'une seule fois lorsque vous avez marqué tous les objets à supprimer.

Questions connexes