版本记录,更新记录

未来需求:

NativeAot支持

值对象映射 Value Object

record语法支持

CodeFirst默认值支持多库

多对多导航需求 https://www.donet5.com/ask/9/16897

导航一对一支持mappingfile

CodeFirst/CRUD自动识别多库

导航更新一对多支持 修改模式

 

已发布版本


5.1.4.108 (2023-9-30)

1、导航查询支持多字段映射在实体类中配置, 文档2.4

2、添加 【表格保存】 将 插入+更新+删除+导航 整合一体化操作

3、sqlite建表支持默认值,和备注 需要开启 ,看文档sqlite

4、子查询支持跨库 Subquery<T>().AsWithAttr().Select.. 


5.1.4.107

增加功能: Where("it",$"it.Id==1&&it.Name=={name}") 支持字符串表达式重载

增加功能:  SqlServer BulkCopy可以强制插入自增值

增加功能:  Updateable.WhereIF  Deleteable.WhereIf(需要Moresetting里面启用)

修复:  SaveQueues 参数重复问题

修复:   .IntoTable<T>()在使用Select(exp,true)重载时列名没取特性名问题

修复:  差异日志在 SetColumn中有子查询问题

修复: Sqlite BulkCopy事务会提前提交问题

修复:自定义类型在 BulkCopy中未生效

修复:DateOnly TimeOnly在BulkCopy中的支持

修复:   逻辑删除 用表达式方式删除 存在参数重复问题



5.1.4.106

添加创建视图 文档:库表管理

添加db.DbMaintenance.GetFuncList 获取函数名

添加db.DbMaintenance.DropView 删除视图

添加db.DbMaintenance.DropFunc   删除函数

添加db.DbMaintenance.DropProc   删除存储过程

添加db.DbMaintenance.GetDbTypes  获取当前数据库类型比如int text等

添加db.DbMaintenance.GetTriggerNames 根据表名获取触发器名字

添加SqlFunc.CharIndexNew  ,以前的CharIndex加上过期标签主要是多库下参数顺序不同不能多库一致体验

CodeFirst支持配置更新精度:MoreSetting里面启用 EnableCodeFirstUpdatePrecision

优化SetCoumns(exp,true)存在默认值 get set="x" 会一起更新问题

添加UpdateColumns(exp,true)重载可以指定更并且追加过滤器字段

修复 TDengine特殊情况非空报错

修复ClickHouse Array String 下批量报错

AddJoinInfo(Type EntityType,"s","s.id==y.id")添加EntityType重载可以支持过滤器

导航插入、更新、删除支持 .IncludeByNameString("导航属性名") 


5.1.4.105

db.Copynew支持租户复制

PgSql Oracle  ToString HH24时间格式化自动处理问题

多对多中间表支持 导航配置whereSql,一对多支持配转置 whereSql只能查询其他不支持

修改跟踪方式更新和差异日志冲突bug

修改db.GetDate()在Sqlite时区问题

修复分表+高级保存 使用wherecolumn问题

逻辑删除和配置过滤器冲突问题

Json2Sql联表中用2个函数参数冲突问题

Access DbFirst字段没有读出备注问题



5.1.4.104 

多租户下TDengine问题

Select nullable<枚举> 遇到带精度的小数转换失败问题,常见库有oracle 达梦 number(0,0)类型


5.1.4.103 (2023-8-30)

添加:分页操作,让性能更上一层楼

 db.Deleteable<Order>(list).PageSize(500).ExecuteCommand();
 db.Insertable<Order>(list).PageSize(500).ExecuteCommand();
 db.Updateable<Order>(list).PageSize(500).ExecuteCommand();
 db.Storageable<Order>(list).PageSize(500).ExecuteCommand();
 db.Storageable<Order>(list).PageSize(2000).ExecuteSqlBulkCopy();

修复: 导航查询用Select DTO复杂层级有多个相同属性覆盖问题

添加:全文索引函数 SqlFunc.FullTextContains

修复:神通数据库部分SqlFunc函数

优化: 一对一如果是主键条件 不加过滤器条件


5.1.4.102

 重要:修复5.1.4.98+版本引起的独有BUG   联表查询 (a,b) 如果b使用 SqlFunc.ToString(it.xx) 错误


5.1.4.100 (请升级102+)

分表支持了高级保存

ToTree添加重载来指定关系,以前需要主键或者特性


5.1.4.99 (请升级102+)

修复Bug:导航查询过滤器相关BUG

完善功能:Queryable.ClearFilter()支持导航对象

修复Bug: TDengine 数据库 mallint tinyint类型出错

完善功能:  差异日志支持了 wherecolumns方式更新 

修复Bug: Updateable.InnertJoin.SetColumns使用 sqlfunc.IF 出错

修复Bug:  SqlServer下使用BulkCopyUpdate(datatable重载) 如果datatable列不全出错

完善功能:  Pgsql guid类型 不指定datatype生成的类型从varchar改成uuid

完善功能: OceanBaseForOracle 组件升级 


5.1.4.98 (请升级102+)

重大体验升级:

支持了Select中 枚举.ToString()

Select 支持 ToString("n") ToString("0.0") 等C#所有格式化 

修复导航Select中.Count或者Any特殊情况下过滤器引起的错误


5.1.4.96 (2023-8-12)

子查联表支持设置自定义表名

修复多对多中间表过滤器 不生效问题

修复  Discrimator(新功能) 联表条件未生效 相关BUG

分组使用导航并且有DTO查询报错问题

完善 达梦和金仓 CodeFirst部分BUG , 达梦金仓 DateTimeOffset类型时区没存储问题

批量高级保存过滤器没生效问题


5.1.4.95

修复 PgSql SqlFunc.MergeString函数错误

完善自动DTO

修复5.1.4.94独有Bug QueryableByObject(type)独有BUG

修复 DbMain.GetColumns (PGSQL)获取了其他Schema字段

完善.TDengine 

修复 GBase数据库 bool类型 BUG


5.1.4.94

SqlServer下面修改备注可以识别Schema  IsAnyColumnRemark DeleteColumnRemark DeleteColumnRemark

MySql CodeFirst 会多次修改double 和tinyint字段(性能和功能无影响只是多次浪费请求)

子查询支持自动NoLock需要配置 文档SqlServer

优化Oracle删除不会出现N

Queryable.OrderByPropertyName 升级支持多字段逗号分割

雪花ID支持时间回滚事件处理

添加 取整函数 SqlFunc.Ceil & SqlFunc.Floor

支持TDengine


5.1.4.93 

优化导航DTO和自动DTO


5.1.4.92

支持 Discrimator鉴别器功能(支持多字段,EF Core只支持单字段)

添加OceanBase ORACLE模式的访问

添加 SqlFunc.TrimEnd  SqlFunc.TrimStart

修复导航查询特殊情况下null关联出错

优化Oracle和达梦参数名为特殊关键问题

优化SetColumns 复杂函数解释解析出错

添加 Queryable.ToDataTableByEntity 等同于ToList().ToDateTable 而不是直接转DatableTable()

SqlFunc.SplitIn支持指定运分割符号

添加 SqlFunc.Left Right LeftPad

支持表达式Select(it=>new { xx=new {yy=new {}}}) 3层嵌套以前不行

修复分表更新UpdateColumns不生效问题

添加Queryable.InIF

优化Sqlite 插入或者更新 用WhereColumn并且有主键以前需要忽略主键现在不需求

添加Queryable.GroupByIF(字符串)

分表支持乐观锁

修复枚举为主键的实体删除出错

更新Clickhouse部分BUG

修复表达式$"{}{}{}{}"超过3个{}解析错误

达梦支持 Clob特性和Oracle一样


5.1.4.91 (2023-7-13)

紧急修复: 89和90版本独有BUG ,在多租户下没有设置ConfigId会导致内存上升

升级Sqlite驱动

升级Oracle驱动

升级人大金仓驱动 ,修复bulkcopy bug

开窗函数 rowsum rowmin rowmax rowcount都升级到和rownumber一样的重载

Queryable.ToChildList 支持传ID集合

达梦支持schema

导航查询支持枚举作主键关联关联

SqlFunc.BitwiseAnd 支持long类型

子查询支持 表格查询

添加SqlFunc.WeekOfYear 统计这周在本年第个

修复双In子查询带Group出错

修复$"{}"超过四个参数报错

修复Updateable和Deleteable特殊语法下子查询 或者ListAny报错


5.1.4.89 (2023-7-9)

Db.Fastest.PageSize datatable重载分页出错

支持多库实体AOP ,例如:A库和B库可以用不同的实体AOP规则

优化ClickHouse

导航更新:多对多支持逻辑删除

修复达梦多主键集合方式更删除报错

添加 OrderByPropertyName("类属性名") 根据属性名排序

加强Json2sql和 OrderBy(sql)的安全性


5.1.4.88

支持Oracle SqlFunc.BitwiseAnd

导航更新一对一特殊情况BUG

添加SqlFunc.ToSingle

支持Queryable.Includes().Mergetable()

SqlServer默认值可以为"",以前必须要有一个字符

优化Clickhuose 数组类型

优化达梦codefirst guid不设置datatype为varchar 1


5.1.4.86

导航一对多支持逻辑删除

导航多对多 插入和更新支持 中间表其他字段

Sqlite支持Equals+2重载忽略大小写

优化子查询As中有方法

优化子查询用Where(exp.ToExpression)方法报错

QuestDb 支持简化版开窗口函数 Last On

QuestDb  支持 SampleBy (相当于报表查询升级版本)

Npgsql 对于Unit兼容(驱动是不支持的,底层用int处理)

部分表达式优化

跨库查询对于Dblink进行加强,并且文档写清楚了


5.1.4.85

Oracle支持12C+的自增列

Deleteable.Wherecolumn Sqlite下BUG

IncludesByNameString(+5)支持加五重载

添加 db.QueryableByObject 动态查询


5.1.4.84

严重: 修改PgSql批量更新200条以上 时间和Json数据错误

AZure SqlServer CodeFirst bug

 db.SqlQueryable(sql).Max(xx)

修复 TimeSpan 等于 null 出错

支持 元组 Select<(int a, string b)("a,b")

添加 db.QueryaleByObject(Type).ToList() 动态类查询

SqlServer first和distinct一起用BUG

优化sqlite Datetime.Now.Date

Oracle OffIdentity报错

修复导航插入实体过滤器会走2次



5.1.4.83

支持导航查询在多种场景的使用比如,嵌套查询 db.Sqlueryable等

动态类方式建表 ColumnName属性未生效

优化SqlSugarScope.CopyNew未带上过滤器

优化达梦和Oracle参数为:index报错

表达式支持 Where(x=>arrayIds.Any(y=>x.name.Contain(y.name)))

优化子db.AsTenant()能自动转到主db


5.1.4.82  

升级达梦驱动到最新

添加list<string>.Any(x=>it.Name.Contains(x))支持

HG数据库支持完善,文档同步

InsertableByObject 和UpdateableByObject支持 IgnoreColumns(string [])

添加开窗口函数 SqlFunc.RowAg RowMax RowMin

部分表达式优化升级

修复Questdb ToDate函数在Unionall中问题

性能优化.NET CORE中SqliteCodefirst

修复 Subquery.First<DTO>()  Subquery.ToList<DTO>() 部分情况下错

优化迁移对比输出日志 还没有插入的表不带表名


5.1.4.80

自定义分表支持了全部特性配置,不需要手动修改配置

修复 Updateable.PublicSetColumns(exp,string) 减运算问题

修复 导航查询用表达式中 it.nav.nav2.Id 其中表名称有 "点"符号  解析错误

修复  Select中用导航查询对象.Count()部分用法出错

优化 仓储.CopyNew()方法 文档:偶发已同步用法

nuget 移除5.1.4.78版本


5.1.4.77

自动DTO 只写导航对象时 生成的SQL*改成 字段AS属性 解决类和库不同无法自动映射

添加批量更新+N操作

逻辑删除支持ServerTime更新

SqlQueryable 只写Order时候SQL错误

Update.able.CallMethod 当更新没有记录了错问题

优化达梦和Oracle @转换:问题

CodeFirstMySql添加Guid字段不指定dataType生成的是varchar1改成varchar36


5.1.4.76

导航查询对于DTO转换进行了全面升级

bulkcopy支持实体数据AOP处理

SqlQueryable特殊情况SQL错误

.Net framework升级达梦驱动

添加Sqlfunc.Mod支持Oracle不支持%运算符

添加SqlFunc.RowSum 函数


5.1.4.73

差异日志支持全局配置

开源协议变更为MIT

支持配置dblink实现跨服务器联表查询

插入Insertable.OffIdentity()强制插入自增列

Queryable.IntoTable  修复带有函数报错,支持异步

修复MySql和人大金仓添加默认值部分情况报错

优化Queryable.ToDictionary Json字段问题


5.1.4.72

 支持批量更新支持字段+1

 修复:【 忽略null批量更新 】出现锁表BUG (BUG比较严重,不过用的人并不会太多近一个月才支持的功能

 个别库 int1类型的支持

 修复: oracle onerror事件失效

 优化TimeSpan CodeFirst不需要设置DataType

 达梦和Oracle支持联表更新

 修复PgSql DateDiff  秒情况下BUG

 优化MySql和Sqlite时间格式化支持了所有时间格式语法

 

5.1.4.71

导航DTO全新升级Select中 能完美支导航对象.函数 ,并且在联表查询中Select也能用导航对象

子查询Subquery.ToList支持了自动映射 Subquery.ToList<DTO>() 和Subquery.ToList(exp,true)

PgSql SetColumns部分重载 JSON字段不能用问题


5.1.4.69

优化ManyToMany IsRootInsert配置未生效

修复Oracle bulkCopyUpdate DataTable重载BUG

添加联表更新新语法

修复金仓PGSQL CharIndex函数

优化无实体查询函数

部分表达式优化

添加Subquery.Max Min Sum Avg在多表下重载

添加LeftJoinIF

修复表达式枚举.ToString()

添加SetCoumns(exp,exp)重载

修改自定义类型.NET7上面的BUG

InsertByObject 、DeleteByObject、UpdateByObject支持分表


5.1.4.67

添加 Queryable.IncludesByNameString("navname")

优化mysql decimal codefirst默认为18,4

表达式支持 Where(it=>list参数.Any(z=>z.id==it.id&&z.name==it.name)) 实现多字段 OR

添加异步锁 using(await db.LockAsync()){  中间代码 }  ,解决C# lock 不能有await 的问题

修复ClickHouse Array类型

人大金仓CodeFirst   Byte[] 不指定DataType 默认值错误

DateOnly? 如果是 null 更新会变成1900-01-01不是null

修复mysql bulkcopy 因为\n影起的BUG linux用户会出现


5.1.4.66

自定义类型 在 SetColumns中未生效  ,

 CodeFirst基类XML读不到备注问题(历史遗留问题)

MySql支持了独立添加列备注功能 (技术性突破解决,以前要用修改列方法)

支持MySql建库根据字符串的Charset 

优化DateOnly和TimeOnly 

修复Db.Ado.MasterQuery(sql)会影响下面也走主表问题

修复部分库自动映射dto true 重载BUG

自定义类型 Where中失效

批量更新忽略null不更新报错

CodeFirst基类中XML备注读取不到


5.1.4.64 

接口过滤器 联表查询特殊情况下BUG

乐观锁优化:更新失败还原版本字段的值

修复5.1.4.63 独有Bug , db.InsertableByObject异步方法返回自增报错


5.1.4.63

修复 5.1.4.62 独有BUG  dh.Updateable.UpdateColumns 新版出错问题

DateTimeooffset 在非SqlServer上的优化

子查询联表 特殊情况问题

异步方法添加CancelToken重载 

支持原生ORM SQL打印方法 方便调试:UtilMethods.GetNativeSql(sql,pars)


5.1.4.62

db.Updateable(data)可以用UpdateCoumns进行叠加

支持了自动导航到第二层(只更多层次手动处理)

支持导航了A下面有D,D下面有B和C  .IncludesAllSecondLayer(x=>x.D) 这样一句可以把D 和BC都查出来

删除和更新支持了配置自动设置查询过滤器(过滤器文档)

高级保存语法糖(大数据插入和更新):db.Storageabl(data).ExecuteSqlBulkCopy()

高级保存语法糖(是0就插入大于0更新): Db.Storageable(list).DefaultAddElseUpdate().ExecuteCommand()

自定义类型添加:自带的通用转类 CommonPropertyConvert  比如string 转 int默认情况下不支持 用这个就可以

Oracle支持 SqlFunc.JsonField


5.1.4.60

无实体创建表,并且支持实体的所有功能

添加获取存储过程名字方法

添加获取索引集合方法

Sqlite支持备份数据库

特殊情况下排序bool类型出现=1

支持LeftJoin<T>(exp,表名)

PGSQL查不到分区表

子查询支持List<int>这种查询Subquery<T>().ToList(it=>it.Id)

修复达梦报错: Subquery<T>().SelectJoinString(it=>it.Id,",") 


5.1.4.59

更新忽略NULL支持批量量

跟踪更新支持批量

支持了Updateable.Clone()

子查询支持单条

MySql支持了备份数据库

达梦CodeFirst BUG修复


5.1.4.58

重大体验提升:优化实体映射错误精确定具体字段 

修改删除接口过滤器,不能指定删除具体某一个问题

QueryableWithAttr.LeftJoin支持同服务器跨库

QueryableWithAttr.IncludeLeftJoin支持同服务器跨库


5.1.3.57

人大金仓假删除 BUG

优化跨库查询

支持了自定义类型 CRUD  

SqlServer支持JsonAarrayAny & JsonListAny 

DateTimeOffset最小值

IntoTable支持返回受影响行数

添加 Db.Ado.MasterQuery  


5.1.3.52

导航查询nullable类型不一致BUG

接口过滤器 Queryable<T,T2,T3>这种方式这种方式JOIN报错

ORACLE大数据插入返回-1

接口过滤器子查询未生效

修复Json数组函数在OR关系中问题

表达式中数据 函数(数组[i])解析BUG

PgSql获取表信息方法,备注不是建表时加上的 查询不到


更多

http://www.donet5.com/Ask/9/13206

关闭
文档:SqlSugar5.0