2010-11-20 4 views
1

quelqu'un peut-il me dire des approches pour s'attaquer à ce qui suit est un cas d'utilisation très typique.Autoriser pour les changements de base de données

L'utilisateur 1 modifie la page 1 qui modifie les rôles d'un utilisateur, etc. L'utilisateur 2 modifie également le même utilisateur que l'utilisateur 1. Comment éviter que les changements ne se remplacent ???

c'est pour le site asp.net avec le cadre 3.5 ???

grâce Niall

Répondre

4

Optimiste est ici concurrency très courante, en utilisant souvent le type de données ROWVERSION (alias TIMESTAMP dans le serveur SQL). La plupart des ORM géreront cela automatiquement (détecter la présence d'un ROWVERSION/TIMESTAMP) - sinon vous devrez gérer cela dans votre code.

Au niveau le plus simple; vous gardez le ROWVERSION que vous avez récupéré lorsque vous avez récupéré l'enregistrement pour le modifier, et vérifiez-le lorsque vous essayez de sauvegarder. Si cela correspond, la sauvegarde est validée; sinon vous lancez une exception (la seconde édition perd).

Notez que pouvez (comme alternative) vérifier chaque colonne pendant la mise à jour; c'est plus granulaire, mais plus coûteux (et il ne gère pas complètement certains scénarios avec des propriétés interdépendantes).

+0

excellent merci pour ce marc. – Somedeveloper

Questions connexes