Bewährtes Verfahren zum Sperren eines Datensatzes zur Bearbeitung unter Verwendung des Entitäts-Frameworks

Ich bin nicht ganz sicher, wie ich diese Frage formulieren soll, aber hier ist sie. Ich arbeite an einem Projekt, in dem mehrere Clientanwendungen über einen WCF-Dienst auf eine Datenquelle zugreifen. Es ist möglicherweise nicht relevant, aber der WCF-Dienst verwendet ein Entitätsframework, um auf diese Datenquelle zuzugreifen. Wann immer ein Client einen Datensatz zur Bearbeitung abgefragt hat, möchte ich verhindern, dass derselbe Datensatz vom Rest der Clients bearbeitet wird, bis der erste Client seine Aktualisierung abgeschlossen hat.

Korrigieren Sie mich, wenn ich falsch liege, aber ich glaube, dass dies auch als synchroner und asynchroner Datenzugriff bezeichnet wird.

Meine Frage ist, was ist die branchenweit bewährte Methode, um diese Funktionalität zu implementieren. Gibt es eine Möglichkeit, dies von der Datenbankseite aus zu steuern (mithilfe von SQL), oder muss dies über den Client erfolgen?

Ich habe darüber nachgedacht, eine boolesche 'EditMode'-Spalte für jede Tabelle einzufügen und sie einfach auf true zu setzen, wenn sie bearbeitet wird, und zu prüfen, ob dies auf true festgelegt ist, bevor ein anderer Client auf diesen Datensatz zugreifen kann.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage