2010-07-22 7 views
0

Environnement: SQL, LINQ, C#Verrouillage des bases de données

J'ai 2 WinForms en cours d'exécution sur des ordinateurs différents.
Ils touchent tous la même base de données et il est extrêmement important que ces formulaires n'affectent pas l'état de la base de données. J'ai quelques questions.

WinForm1, les requêtes LINQ dans ce formulaire sont tous essayer/attrapée, s'il y a un conflit de concurrence, je crois que cela ne manquera jamais (corrigez-moi si je me trompe)

WinForm2, les requêtes LINQ en ce formulaire peut entrer en conflit avec ceux de WinForm1, mais chaque requête est également essayée/interceptée. Question: En cas de conflits de concurrence entre ces formulaires, est-il possible que la base de données soit verrouillée (aucune autre requête ne peut accéder à la base de données)? Si ce n'est pas le cas, y a-t-il une situation où un conflit de concurrence peut rendre la base de données irrécupérable?

+2

Vous pourriez expliquer ce que vos * requêtes * font réellement. –

+0

Sélection et mise à jour des requêtes, donc essentiellement la lecture et la mise à jour – sooprise

Répondre

1

LinqToSql utilise Optimistic Concurrency, ce qui ne bloque pas la base de données.

Les blocages sont la menace réelle et non les conflits de concurrence.

La meilleure approche pour éviter les blocages est de garder les mises à jour petites et rapides.

+0

Ainsi, les requêtes vont échouer là où elles sont envoyées, mais elles ne verrouilleront pas réellement la base de données? En outre, en situation de blocage, il arrête uniquement les deux requêtes qui sont en conflit les unes avec les autres, et aucune autre requête? Désolé d'être si anal, mais il est important que je comprenne ces problèmes le plus complètement possible. Merci. – sooprise

+0

Oui (vous ne pouvez pas avoir de sélection en conflit, la mise à jour échouera en cas de conflit) et Oui (l'une des requêtes bloquées sera supprimée, l'autre sera alors autorisée à se terminer). –

+0

Ok, merci. Ça marche pour moi – sooprise

Questions connexes