Closed ioer2008 closed 3 years ago
神速啊
不过时间类型的需要自己去更新标识; int类型的Version可以由SqlSugar来更新标识;
我还是坚持我的建议;
可以这样吗,直观
FluentNHibernate里面可以这样配置, 如果在update之前查询到version不一致,就直接返回了,我再进行try, 而你上面的是要自己查询是否一致,多了一步,
我发现有这个功能 ,你数据库如果可以自动维护 更改就改成 比如MSSQL的时间戳类型
[SqlSugar.SugarTable("Student")]
public class StudentVersion
{
public int Id { get; set; }
public string Name { get; set; }
public DateTime CreateTime { get; set; }
[SqlSugar.SugarColumn(IsEnableUpdateVersionValidation = true,IsOnlyIgnoreInsert=true)] //数据库会自动维护
public byte[] Timestamp { get; set; }
}
//is ok
db.Updateable(data).IsEnableUpdateVersionValidation().ExecuteCommand();
如果你数据库有自动维护 Timestamp 字段或者你用解发器让他更新自动变 就可以用这个现有功能
SqlServer中的时间戳 就可以用我上面的方式
好的,多谢!
我以前是使用Nhibernate的,它们有一个int字段的Version,用来处理并发修改的问题, 可以参考一下这篇文章 https://blog.csdn.net/weixin_33754913/article/details/85889869