Comment totalement verrouiller une ligne dans Entity Framework

Je suis en train de travailler à une situation où nous avons affaire avec des transactions d'argent.

Par exemple, j'ai une table d'utilisateurs de portefeuilles, avec leur solde en ligne.

UserId; Wallet Id; Balance

Maintenant dans notre site web et de services web, chaque fois qu'un certain transaction se produit, nous avons besoin de:

  1. vérifiez qu'il y a suffisamment de fonds disponibles pour effectuer cette opération:
  2. déduire le coût de l'opération à partir de la balance.

Comment et quelle est la bonne façon d'aller sur le verrouillage de ligne /de l'entité pour toute la durée de ma transaction?

De ce que j'ai lu il y a quelques solutions où EF est la marque d'une entité, puis compare cette marque lorsqu'il enregistre de nouveau à la DB, cependant, que faut-il faire quand un autre utilisateur /programme a déjà édité le montant?

Puis-je réaliser cela avec EF? Dans la négative, quelles autres options s'offrent à moi?

Serait d'appeler une procédure stockée permettent éventuellement de pour moi pour verrouiller la ligne correctement de sorte que personne d'autre ne peut accéder à cette ligne dans le SQL Server tandis que le programme a un verrou sur elle?

OriginalL'auteur Zapnologica | 2014-11-18