Concurrence d’application de firebase database C #

J’ai écrit une application multi-utilisateur en c # quelque temps, en utilisant SQL Server 2005 Express comme back-end.

J’ai une collection de commandes. Pour utiliser cette classe, vous devez l’instancier et simplement appeler la méthode Load (CustomerCode) afin de renseigner la collection avec les commandes du client spécifié.

Ma question:

Comment puis-je appliquer la concurrence, de sorte qu’un seul utilisateur puisse demander une collection Orders pour un client spécifique? Lorsque l’utilisateur en aura terminé avec l’object (lorsque l’object est défini sur null), je devrai le rendre à nouveau disponible.

Vous devez implémenter le modèle de locking hors ligne pessimiste .

Essentiellement, vous insérez une table dans une table qui représente un “verrou” sur les enregistrements des autres tables. Lorsque vous souhaitez modifier un enregistrement, vous vérifiez d’abord s’il y a un verrou dans la table de locking et vous réagissez en conséquence dans votre logique / interface de domaine.

Il ne doit pas s’agir d’une firebase database, il peut s’agir d’un cache en mémoire. Quand je dis “table” dans mon exemple, je veux dire une table logique, pas nécessairement une firebase database.

Le locking hors ligne pessimiste prévient les conflits en les évitant complètement. Il oblige une transaction commerciale à acquérir un verrou sur une donnée avant de commencer à l’utiliser, de sorte que la plupart du temps, une fois qu’une transaction commerciale est lancée, vous pouvez être certain de la terminer sans être dépassée par la concurrence contrôle.