Структура сущности ado.net «сохраняет» изменения, несмотря на завершение транзакции - PullRequest
1 голос
/ 08 апреля 2011

привет, ребята, у меня есть некоторые проблемы с логикой в ​​моем коде (структура сущности adonet)

вот псевдокод

i = 0

while i < 5

   using transactionreadcommited

   {

     var getuser = (from a in mydb.users where userid.equals(1) select a).firstordefault

    try {

        getuser.moneyBalance -= 10;

       //error here

       some command here causing expected error so it goes to catch ;


        db.savechanges()
        transaction.complete()

  }catch{

     i = i + 1

  }

 }

end while

проблема в том, что:

Я получаю нового пользователя в новой транзакции каждый раз, когда он повторяет попытку в цикле while

Начальный баланс пользователя составляет 100. Я минус 10, поэтому он становится 90

.

, но если какая-то команда завершится неудачно, она выйдет из транзакции и повторите попытку -

во 2-м цикле деньги пользователя становятся начальными 90 - 10 = 80. не должны ли они вернуться к 100, поскольку я заново создаю новую транзакцию и не зафиксировал первый цикл?

...