Przyrost atomowy ze strukturą encji
Mam serwer MySQL, do którego mam dostęp za pomocą Entity Framework 4.0. W bazie danych mam tabelę o nazwiePrace w które się liczy. Zajmuję się tworzeniem strony internetowej za pomocą Asp.net. Ta tabela jest dostępna dla użytkownika o tej samej porze. A ta sytuacja powoduje zły problem z instalacją.
Mój kod w ten sposób:
dbEntities myEntity = new dbEntities();
var currentWork = myEntity.works.Where(xXx => xXx.RID == 208).FirstOrDefault();
Console.WriteLine("Access work");
if (currentWork != null)
{
Console.WriteLine("Access is not null");
currentWork.WordCount += 5;//Default WordCount is 0
Console.WriteLine("Count changed");
myEntity.SaveChanges();
Console.WriteLine("Save changes");
}
Console.WriteLine("Current Count:" + currentWork.WordCount);
Jeśli ktoś więcej niż wątek ma dostęp do bazy danych w tym samym czasie, pozostają tylko ostatnie zmiany.
Wyjście prądowe:
t1: Gwint jeden - t2: gwint dwa
t1: Dostęp do pracy
t2: Praca dostępu
t2: Dostęp nie jest pusty
t1: Dostęp nie jest zerowy
t1: Zmieniono licznik
t2: Zmieniono liczbę
t1: Zapisz zmiany
t2: Zapisz zmiany
t1: aktualna liczba: 5
t2: Aktualna liczba: 5
Oczekiwany wynik:
t1: Dostęp do pracy
t2: Praca dostępu
t2: Dostęp nie jest pusty
t1: Dostęp nie jest zerowy
t1: Zmieniono licznik
t2: Zmieniono liczbę
t1: Zapisz zmiany
t2: Zapisz zmiany
t1: aktualna liczba: 5
t2: Aktualna liczba: 10
Wiem, dlaczego widzę ten problem, ponieważ ten kod nie jest atomowy. Jak mogę włączyć operację atomową?