using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace OrmTest { public class ULock { public static void Init() { var db = NewUnitTest.Db; db.CodeFirst.InitTables(); db.DbMaintenance.TruncateTable(); var id=db.Insertable(new ULockEntity() { Name = "oldName", }).ExecuteReturnIdentity(); var data = db.Updateable(new ULockEntity() { Id = id, Name = "newname", Ver=0 }).ExecuteCommandWithOptLock(); if (data != 1) { throw new Exception("unit error"); }; var data2 = db.Updateable(new ULockEntity() { Id = id, Name = "newname2", Ver = 0 }).ExecuteCommandWithOptLock(); if (data2 != 0) { throw new Exception("unit error"); }; var data3 = db.Updateable(new ULockEntity() { Id = id, Name = "newname2", Ver = 0 }) .UpdateColumns(z=>z.Name).ExecuteCommandWithOptLock(); if (data3 != 0) { throw new Exception("unit error"); } var ver = db.Queryable().InSingle(id); var data4 = db.Updateable(new ULockEntity() { Id = id, Name = "newname2", Ver = ver.Ver }) .UpdateColumns(z => z.Name).ExecuteCommandWithOptLock(); if (data4 != 1) { throw new Exception("unit error"); } } public class ULockEntity { [SqlSugar.SugarColumn(IsPrimaryKey =true,IsIdentity =true)] public int Id { get; set; } public string Name { get; set; } [SqlSugar.SugarColumn(IsEnableUpdateVersionValidation = true)] public long Ver { get; set; } } } }