更新时防止脏读导致更新错误 返回

SqlSugar 老数据
1 2425

UPDATE dbo.Sys_User SET LastModifyTime=GETDATE()

WHERE Pkid=1 AND LastModifyTime='2018-05-05 11:00:21:321';


更新时根据主键和最后一次更新时间,来进行更新数据,防止更新的数据已经被别人更新过,同时把最后一次更新时间更改成当前时间

请问这种写法该如何写?

目前想到的是 传entity,和读取该数据时的LastModifyTime ,是否有其他更方便的方法解决,甚至底层的写法来解决

 public bool UpdateEntity(Sys_User entity,DateTime time)

        {

            try

            {

                int res=db.Updateable<Sys_User>(entity).Where(a => a.Pkid == entity.Pkid && a.LastModifyTime == time).ExecuteCommand();

                if (res > 0)

                {

                    return true;

                }

                return false;

            }

            catch (Exception)

            {

                return false;

            }

        }


热忱回答1

  • 程序 程序 VIP0
    2018/5/8

    SELECT时 使用  .With(SqlWith.UpdLock)

    0 回复