升级指南

版本说明

5.0.2 及以上版本  

直接升级 ,如果有报错肯定是名字换了,点出来替换即可

5.0.2 以下版本

1.  检查有没有设置initKey,没设置的要注意了

  DbType = SqlSugar.DbType.SqlServer,
  ConnectionString = Config.ConnectionString,
  InitKeyType = InitKeyType.Attribute,//这个默认值换了,如果以前没有设置需要改成Systemtable
  IsAutoCloseConnection = true,

2. UpdateColumns报错名字改成SetColumns

3. 部分扩展方法报错需要引用新命名空间

4、mysql.data 使用8.0.21 或者  6.9.12 ,禁止用 6.0.10.xxx

5、SqlSugarClient换成SqlSugarScope 并且用单例模式

4.0以下不支持升级


常见问题

IsShardSameThread移除  

用SqlSugarScope单例模式取代SqlSugarClient+IsShardSameThread效果一样,并且支持异步,

升级后出现偶发性错误

新版本移除了SqlSugarClient的部分线程安全支持

方案1:

你可以把你的 SqlSugarClient 替换成单例的 SqlSugarScope (SqlSugarScope要用单例) 具体用法看 文档入门

如果不想替换那就需要找到db在哪里出现了跨线程使用

方案2:

报错代码加上

db.CopyNew().Queryable<Order>().ToList();//强制new出一个对象保证线程安全
//如果用到事务
var mydb=Db.CopyNew();
mydb.BeginTran();
mydb.Insertable(list).ExecuteCommand();
mydb.Insertable(list2).ExecuteCommand();
mydb.CommandTran();

出现And变成& Or变成|

https://www.donet5.com/Home/Doc?typeId=2359

手动拼表达式不要写错了:

image.png

文档:SqlSugar5.0