剃刀页面中的AdLockOptimistic等效项

时间:2017-12-03 08:41:50

标签: c# asp.net razor

我正在研究.Net Razor网页,我想知道如何阻止读取注册表(之前我在ADO中使用了AdLockOptimistic),直到更新完成,我的代码是......

        var sqlLeeUsr = "SELECT UsrSmlla FROM tbUsr WHERE (UsrNro=@0)";
        var usr = db.QuerySingle(sqlLeeUsr, intUsrNro);
        if (usr != null)
        {
            intSecuencia = usr.UsrSmlla + 1;

            var sqlModUsr = "UPDATE tbUsr SET UsrSmlla=@0 FROM tbUsr WHERE (UsrNro=@1)";
            db.Execute(sqlModUsr, intSecuencia, intUsrNro);
        }

1 个答案:

答案 0 :(得分:0)

不是查询值,然后递增它,你应该在一个中执行这两个操作。这样,每次调用都会肯定获得唯一值。

您想要执行的代码可能是:

var sqlLeeUsr = "UPDATE tbUsr SET UsrSmlla=UsrSmlla+1
    FROM tbUsr
    OUTPUT INSERTED.UsrSmlla
    WHERE (UsrNro=@1)";
var changed = db.QuerySingle(sqlLeeUsr, intUsrNro);

这将更新表并返回新的(递增的)值。