2010-02-05 5 views
1

En ce qui concerne la commande SubmitChanges (Insert, Update, Delete), existe-t-il un moyen de modifier cette commande? Je dois d'abord exécuter les suppressions, les mises à jour, puis les nouvelles insertions. J'ai un DataGrid où l'utilisateur peut faire tout ajouter, modifier et mettre à jour et soumettre. Comme chaque ligne de la grille doit contenir un élément unique (via une liste déroulante), l'utilisateur peut supprimer la ligne, puis essayer d'utiliser l'élément déroulant supprimé dans une nouvelle ligne, puis essayer de mettre à jour tous les changements et avoir la mise à jour échoue (puisque l'élément que l'utilisateur veut supprimer existe toujours dans la base de données parce que l'envoi est en train de faire les insertions en premier). Existe-t-il un paramètre dans lequel je peux contrôler l'ordre de mise à jour automatique ou dois-je manuellement effectuer les mises à jour moi-même?Contexte LINQ SubmitChanges

Répondre

0

Je ne crois pas que ce soit possible. Vous devez traiter les modifications dans l'ordre souhaité et appeler SubmitChanges() après chaque insertion, mise à jour ou suppression. Si vous voulez que tout soit compris dans le cadre d'une transaction, utilisez l'objet TransactionScope.

1

Je n'ai pas essayé ceci, mais vous pourriez considérer ce qui suit. Tout d'abord, obtenez le ChangeSet en utilisant DataContext.ChangeSet. Ensuite, exécutez le ChangeSet.Deletes en appelant Table<T>.DeleteOnSubmit sur une nouvelle instance de votre DataContext. Rincez à nouveau pour le ChangeSet.Updates et le ChangeSet.Inserts.

Bonne chance.

Questions connexes