当前位置: 首页 > news >正文

网站备案拍照背景局域网网站建设步骤

网站备案拍照背景,局域网网站建设步骤,营销型网站公司排名,业务员用什么软件找客户系列文章目录 #x1f380;#x1f380;#x1f380; .NET开源 ORM 框架 SqlSugar 系列 #x1f380;#x1f380;#x1f380; 文章目录 系列文章目录一、并发累计#xff08;累加#xff09;1.1 单条批量累计1.2 批量更新并且字段11.3 批量更新并且字段list中对应的…系列文章目录 .NET开源 ORM 框架 SqlSugar 系列 文章目录 系列文章目录一、并发累计累加1.1 单条批量累计1.2 批量更新并且字段11.3 批量更新并且字段list中对应的值 二、防止提交覆盖重复提交(乐观锁)2.1 不依赖库同步 新功能2.2 依赖库同步(老功能)2.3 一对多提交 三、悲观锁的用法3.1 悲观锁等待模式3.2 悲观锁排它模式在这里插入图片描述 .NET开源 ORM 框架 SqlSugar 系列 一、并发累计累加 1.1 单条批量累计 比如要扣钱什么的或者数字叠加这种就需要通过 set 字段段字段1 这种方处理。 //正确写法安全的字段累计 var result db.UpdateableStudent().SetColumns(it it.Num it.Num1).Where(it it.Id 1).ExecuteCommand(); //sql numnum1 //错误写法 在程序中计算是不安全的 var numdata.num1 var result db.UpdateableStudent().SetColumns(it it.Num num).Where(it it.Id 1).ExecuteCommand(); //sql: num值注意这种更新方式只适合明确主键的更新条件形态的建议用下面的锁。 1.2 批量更新并且字段1 var result67 db.Updateable(updateObjs)//批量更新单独处理num列 set numnum1.PublicSetColumns(it it.Num, it it.Num 1).ExecuteCommand();1.3 批量更新并且字段list中对应的值 db.Updateable(list)PublicSetColumns(it it.Price, ) //set pricepricelist[i].price.ExecuteCommand();二、防止提交覆盖重复提交(乐观锁) 使用乐观锁需要满足2个条件 用户要打开编辑界面然将数据绑定到编辑界面用户在界面填写完在点修改保存 原理 打开编辑框太久别人已经修改了这条记录我在提交就可能把别人更新数据清空掉我们需要一个时间字段去和数据库中的Version比对 重现步骤开2个浏览器 编辑同一条记录 A浏览器先保存然后B浏览器在保存就能重现 因为是同一条记录本身并不存在并发因为编辑界面打开一天也不会刷新数据点保存一样覆盖 2.1 不依赖库同步 新功能 新项目推荐用新功能使用方便有问题及时沟通 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; } //支持Guid long string DateTime (不推荐DateTime 时间有精度问题)//推荐用 string guid 使用long要序列化成strting不然前端精度丢失}//注意只能是实体更新不能是集合更新//【用法1不扔错】 Ver与数据库字段不同不报错返回0var rows db.Updateable(new ULockEntity(){Id id,Name newname,Ver 1551128313597136896//版本字段会自动更新}).ExecuteCommandWithOptLock(); //【用法2扔出错误】Ver与数据库字段不同直接扔错出误var rows db.Updateable(new ULockEntity(){Id id,Name newname,Ver 1551128313597136896 //版本字段会自动更新}).ExecuteCommandWithOptLock(true); //加上true就会扔出错误//try { ... }catch(VersionExceptions ex){...}//底层 throw new VersionExceptions/*********完整测试用例*********///添加测试数据var db NewUnitTest.Db;db.CodeFirst.InitTablesULockEntity();db.DbMaintenance.TruncateTableULockEntity();//第一次插入ver0var id db.Insertable(new ULockEntity(){Name oldName ,Ver0}).ExecuteReturnIdentity();//开始用例var rows db.Updateable(new ULockEntity(){Id id,Name newname,Ver 0 //会自动更新版本字段更新后数据库将不在是0}).ExecuteCommandWithOptLock(); //rows1 因为数据库ver是0你传的也是0var rows db.Updateable(new ULockEntity(){Id id,Name newname2,Ver 0}).ExecuteCommandWithOptLock(); //rows0 失败数据库ver不等于02.2 依赖库同步(老功能) 例如SqlServer 中的时间戳类型的字段会在这条记录变更后会自动更新如果没这种机质的字段你也可以用触发器实现这种机质 有这种机质我们只要打个特性就能实现并发控制代码如下 数据库数据库实体SQLSERVERtimestamp默认自动更新byte[]其他数据库timestamp(需要配置自动更新)DateTime public class StudentVersion {[SugarColumn(IsPrimaryKey true,IsIdentity true)] public int Id { get; set; } public string Name { get; set; } public DateTime CreateTime { get; set; } [SqlSugar.SugarColumn(IsEnableUpdateVersionValidation true,//标识版本字段 IsOnlyIgnoreInserttrue,//禁止插入IsOnlyIgnoreUpdatetrue,//禁止更新ColumnDataTypetimestamp //时间戳类型有些库需要配置或者有差异)] // SqServer byte[] 其它数据库用 DateTime public byte[] Timestamp { get; set; } } db.Updateable(data).IsEnableUpdateVersionValidation().ExecuteCommand();//更新的时候启用验证原理: //查询这条记录var data db.QueryableStudentVersion().InSingle(id);//成功 (data.Timestamp等于数据库中的 Timestamp字段)db.Updateable(data).IsEnableUpdateVersionValidation().ExecuteCommand();//执行后数据库Timestamp更新//失败 (data.Timestamp不等于数据库中的 Timestamp字段)db.Updateable(data).IsEnableUpdateVersionValidation().ExecuteCommand();如何知道是并发错误还是其他错误 //底层代码 throw new VersionExceptions //捕获异常的时候只要是 VersionExceptions 那就是并发错误2.3 一对多提交 只处理主表数据就行了从表不需要考虑因为是一起提交。 三、悲观锁的用法 悲观锁适合用于 读取和插入在同一个步骤下的操作并且禁止2个请求同时操作 3.1 悲观锁等待模式 定义2个相同的业务代码 同时执行时必须等待 第一个执行成功后执行。 主键查询一般是行锁如果非主键可以会变成表锁。 db.BeginTran(); //查询条件记录后锁表 var datadb.QueryableOrder().TranLock(DbLockType.Wait).Where(itit.Id1).ToList();//返回条数尽量最少尽量主键 //插入、更新等操作 ....... db.CommitTran();//异常要加上 db.RollBackTran();3.2 悲观锁排它模式 定义2个相同的业务代码 同时执行时只会生效一个其它都扔出错误。 db.BeginTran(); //查询条件记录后锁表 var data db.QueryableOrder().TranLock(DbLockType.Error).Where(itit.Namea).ToList();//返回条数尽量最少 for update UPDLOCK //插入、更新等操作 ....... db.CommitTran();//异常要加上 db.RollBackTran();测试代码 用的来验证是否扔出异常 for (int i 0; i 10; i) {Task.Run(() {var db GetInstance();//用的sqlsugarclient保证db线程安全每次New一下try{db.BeginTran();var getAll db.QueryableOrder().TranLock(DbLockType.Error).ToList();System.Threading.Thread.Sleep(1000);db.CommitTran();Console.WriteLine(成功);}catch (Exception ex){db.RollBackTran();Console.WriteLine(失败);}}); }.NET开源 ORM 框架 SqlSugar 系列 【开篇】.NET开源 ORM 框架 SqlSugar 系列 【入门必看】.NET开源 ORM 框架 SqlSugar 系列 【实体配置】.NET开源 ORM 框架 SqlSugar 系列 【Db First】.NET开源 ORM 框架 SqlSugar 系列 【Code First】.NET开源 ORM 框架 SqlSugar 系列 【数据事务】.NET开源 ORM 框架 SqlSugar 系列 【连接池】.NET开源 ORM 框架 SqlSugar 系列 【查询目录】.NET开源 ORM 框架 SqlSugar 系列 【查询基础】.NET开源 ORM 框架 SqlSugar 系列 【排序用法】.NET开源 ORM 框架 SqlSugar 系列 【分组去重】.NET开源 ORM 框架 SqlSugar 系列 【联表查询】.NET开源 ORM 框架 SqlSugar 系列 【导航查询】.NET开源 ORM 框架 SqlSugar 系列 【子查询】.NET开源 ORM 框架 SqlSugar 系列 【嵌套查询】.NET开源 ORM 框架 SqlSugar 系列 【配置查询】.NET开源 ORM 框架 SqlSugar 系列 【并集查询】.NET开源 ORM 框架 SqlSugar 系列 【树型查询】.NET开源 ORM 框架 SqlSugar 系列 【表格查询】.NET开源 ORM 框架 SqlSugar 系列 【动态表达式】.NET开源 ORM 框架 SqlSugar 系列 【查询函数】.NET开源ORM框架 SqlSugar 系列 【过滤器】.NET开源 ORM 框架 SqlSugar 系列 【跨库查询、多库查询】.NET开源 ORM 框架 ​【报表查询】.NET开源ORM框架 SqlSugar 系列 【Where语法全解密】.NET开源ORM框架 SqlSugar 系列 【Select 语法全解密】.NET开源ORM框架 SqlSugar 系列 【查询返回结果类型】.NET开源ORM框架 SqlSugar 系列 【insert 插入数据语法合集】.NET开源ORM框架 SqlSugar 系列 【SqlSugar雪花ID常见问题】.NET开源ORM框架 SqlSugar 系列 【update 更新数据语法合集】.NET开源ORM框架 SqlSugar 系列
http://www.dnsts.com.cn/news/87614.html

相关文章:

  • 网站开发进度表网站建设策划书附录
  • 做原油期货关注什么网站网站首页设计一般包括那三个
  • 系统的网站建设教程使用cms建设网站安全吗
  • 青岛专业网站制作设计关键词全网搜索
  • 用html做的美食网站海宁高端高端网站设计
  • 网站鼠标代码建设部证书查询网站
  • 网站开发网站页面东莞市住房建设局网站
  • 个人简历模板免费网站北京建设网站合同下载
  • 网站升级维护中页面汕头企业网站建设
  • 做ptt有什么好的模板网站温州开发网站公司哪家好
  • 网站下拉广告无锡网站关键词优化软件咨询
  • 网站开发免责合同wordpress如何换背景
  • 企业内部网站模板下载深圳网站定制价格低
  • 如何在虚拟空间上做多个网站织梦网站怎么做新闻导航页
  • 买了域名之后怎么做网站asp网站搭建软件
  • 深圳建网站培训学校网站规划与建设评分标准
  • app开发网站建设前景东莞营销型网站外包
  • 成都工程建设信息网站萧县城乡建设局网站
  • 建设企业银行手机银行怎么登录舆情优化
  • js网站文字重叠嘉兴网站建设兼职
  • 网站管理员权限有哪些免费申请移动手机卡
  • 南宁网站制作超薄网络亚洲做性视频网站
  • 网站开发短期培训wordpress编辑器添加自定义
  • 为什么国外网站有时打不开重庆网站建设哪个好
  • 做网站能创业吗花都区网站建设
  • 视频网站怎么做统计表百度学术论文查重
  • 深圳建设网站的公司哪家好响应式布局的优点是什么
  • 鄂州网站建设公司网站建设与案例管理的心得体会
  • 在线教育网站开发简述建设网站的基本流程
  • 网科创想网站管理做博客网站