2009-05-15 5 views
0

Je cours le code pour obtenir l'ensemble de changements juste avant un appel de changements de linq.GetChangeSet ChangeSet, Linq quel ordre les modifications seront-elles appliquées?

private void OnSubmitHandleReplication() 
{ 
    System.Data.Linq.ChangeSet changes = GetChangeSet(); 
    //Do something with change set 
} 

Dans la section faire quelque chose que je dois savoir ce que les choses ont été présentées pour en et quel ordre ils postent à la base de données. Je vois le jeu de changement a une .Inserted, .Updated et .Deleted . Je suppose que ceux-ci sont dans l'ordre dans lequel ils seront appliqués. Cependant, je veux connaître l'ordre général. Je suppose que cela pourrait être Insert, Update, puis 3 insertions de plus, ou quelque chose qui implique de rebondir entre ces collections.

Update 1

Désolé, pensaient que le titre était clair, LINQ to SQL

Mise à jour 2

La raison pour laquelle je fais est de rejouer ces plus tard à un autre DB.

+0

Linq à SQL ou cadre d'entité? Ressemble à linq to sql, mais pas sûr –

Répondre

0

C'est assez difficile.

Vous auriez besoin de creuser assez loin dans le tracker de changement avec réflexion pour obtenir l'ordre réel. En ce qui concerne l'ordre d'insertion, de mise à jour, de suppression, les insertions se produisent avant la suppression, vous devez donc faire attention aux contraintes uniques (ce qui signifie probablement que vous devez mettre à jour au lieu de recréer).

EDIT

Si vous avez juste besoin de « rejouer », sûrement vous pouvez utiliser la fonction de journalisation.

+0

Pourriez-vous développer la fonctionnalité de journalisation? –

0

Vous pouvez activer la journalisation dans Linq2SQL en définissant YourDataContext.Log = Console.Out ou tout autre flux de sortie compatible. Chaque requête SQL LINQ envoyée à la base de données sera imprimée ici. Vous ne devriez utiliser ceci que pour déboguer votre problème, car LINQ envoie beaucoup de requêtes :)

Edit: En ce qui concerne l'ordre des actions, je ne peux pas vous aider plus loin, je n'ai jamais regardé ces requêtes plus que ce que j'avais à.

Questions connexes