So sperren Sie eine Zeile in Entity Framework vollständig

Ich arbeite mit einer Situation, in der es um Geldtransaktionen geht.

Zum Beispiel habe ich eine Tabelle mit Benutzerbrieftaschen, deren Kontostand sich in dieser Zeile befindet.

UserId; Wallet Id; Balance

Jetzt auf unserer Website und unseren Webservices müssen wir bei jeder Transaktion Folgendes tun:

Überprüfen Sie, ob genügend Mittel zur Verfügung stehen, um diese Transaktion durchzuführen:die Transaktionskosten vom Saldo abziehen.

Wie und wie gehe ich vor, um diese Zeile / Entität für die gesamte Dauer meiner Transaktion zu sperren?

Von dem, was ich gelesen habe, gibt es einige Lösungen, bei denen EF eine Entität markiert und diese Markierung dann vergleicht, wenn sie wieder in der Datenbank gespeichert wird. Was macht es jedoch, wenn ein anderer Benutzer / ein anderes Programm den Betrag bereits bearbeitet hat?

Kann ich das mit EF erreichen? Wenn nicht, welche anderen Optionen habe ich?

Würde es mir der Aufruf einer gespeicherten Prozedur möglicherweise ermöglichen, die Zeile ordnungsgemäß zu sperren, sodass niemand sonst auf diese Zeile in SQL Server zugreifen kann, während Programm A die Sperre hat?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage