Skip to content

Releases: MonkSoul/Furion

v2.1.0

23 Apr 08:57
Compare
Choose a tag to compare
  • 新特性

    • [新增] 新增定时任务 ISpareTimeWorker 方式支持 [SpareTime("{配置路径}}] 方式 #I3NTUX
    • [新增] 定时任务支持异步委托 #I3NP96
    • [新增] 轻量级分布式连续 GUID 生成器 #I3NKLZ
    • [新增] ClayObject 模块,处理 ExpandoObjectIDictionary<string,object> 类型 #I3N3J4
    • [新增] Scoped.CreateUnitOfWork(handler) 创建作用域并自动提交数据库更改方法 #I3NU3G
  • 突破性变化

    • [调整] 规范化结果接口 OnResponseStatusCodes 方法,新增 UnifyResultStatusCodesOptions 参数 #I3NDB9
    • [移除] 雪花 ID 实现代码 #I3NKLZ
  • 问题修复

    • [修复] Swagger 不能支持非 int 类型的枚举 #I3NQM8
    • [修复] 数据库线程池多线程并发问题 #I3NR4L
  • 其他更改

    • [改进] 支持应用启动的时候迁移种子数据 #I3NH3M
  • 文档变化

    • [新增] 分布式 ID 生成文档 #I3B6CX
    • [新增] 新增模块化开发文档 #I3NSUS
    • [更新] 20.4 字符串拓展方式 > 错误ToAESDecrypt 写成了 ToToAESDecrypt #
  • 问答答疑

    • [答疑] 有关【定时任务/委托】的疑问 #I3N3EW
    • [答疑] 统一返回格式支持自定义 #I3NU1G
  • 不做实现

    • [作废] 期待 IEnumerableExtensions 扩展 OrderBy 函数来支持分页排序 #I3NOQ9

v2.0.0

17 Apr 19:59
Compare
Choose a tag to compare
  • 新特性

    • [新增] 控制台应用程序及 Worker Services 支持 #I3K4DG
    • [新增] 完整任务调度功能 #I3IRUX
    • [新增] Cron 表达式解析 #I3IQ9Y
    • [新增] 支持 Swagger 自定义配置 swagger.json 地址模板 #I3IHMX
    • [新增] 支持配置动态 WebApi 区域 #I3IJAZ
    • [新增] 远程请求新增支持传入服务提供器 IServiceProvider #I3IVBL
    • [新增] 全局配置选型 SupportPackageNamePrefixs 配置,支持配置包前缀 #I3K0SN
    • [新增] 应用启动时支持 referenceassembly 类型程序集扫描 #I3K0SN
  • 突破性变化

    • [重构] 完整任务调度功能 #I3IRUX
    • [重构] 日志模块功能 #I3J2K0
    • [重构] 模板引擎功能 #I3J46E
    • [重构] 底层 EFCoreRepository 仓储 #I3J6W5
    • [重构] sql 字符串拓展底层代码 #I3IVCE
    • [重构] 底层 SqlRepository 所有逻辑代码 #I3J6V6
    • [重构] 数据库实体拓展方法 #I3J609
    • [调整] 事件事件总线同步执行为异步方式执行 #I3J0WA
    • [移除] 框架底层 HttpContext.IsAjaxRequest() 拓展 #I3IVAA
  • 问题修复

    • [修复] 关闭 InjectMiniProfiler 参数后内存缓存无效 #I3IHLR
    • [修复] 在多租户中调用 Tenant 属性出现偶然性数据库上下文被释放的情况 #I3IC70
    • [修复] Sql 代理中如果返回基元类型抛出不能将 object 转换成对应类型的异常 #I3IC84
    • [修复] 存储过程多返回值的时候,outputvalues 的 name 不是定义的 MSG 的 name,是 Msg 类型。 #I3IC7Y
    • [修复] PhoneNumber 手机号验证正则表达式错误 #I3ID10
    • [修复] 依赖注入 AOP 拦截无法捕获内部异常 #I3IGCC
    • [修复] 全局拦截标记异常已被处理后异常过滤器依然执行 #I3J463
    • [修复] 自定义全局异常拦截器不起作用 #I3K1SJ
  • 其他更改

    • [改进] 启动时程序集扫描类型 #I3K0SN
    • [改进] App.GetConfig<>("key") 不支持获取单个值问题 #I3ILF1
    • [改进] UrlEncode 应该用 Uri.EscapeDataString() 而不是 HttpUtility.UrlEncode #I3ICTK
  • 文档变化

    • [新增] 定位任务、后台任务文档 #I3JHHG
    • [新增] 辅组角色服务文档 #I3K5GN
    • [更新] 动态 WebAPI、规范化文档、数据库上下文文档
  • 问答答疑

    • [答疑] 数据校验,自定义 ErrorMessage 无效问题 #I3ICL3
    • [答疑] 最新 issue 中新增的“新增常用的 JSON 序列化方法” 会导致 AOP 拦截异常 #I3I7VE
    • [答疑] Furion.DatabaseAccessor.PrivateEntityBase 中的 TenantId 数据类型设置为 object #I3IQV6
    • [答疑] 有关异常拦截和处理的疑问 #I3IUFZ
    • [答疑] DataValidation 在空值的情况下被忽略掉了#I3IWSM
    • [答疑] 日志文档没有更新 #I3J1DX
    • [答疑] 对于 webapi 简单类型参数,是否可以以 json 方式提交 #I3J18I
    • [答疑] IUnifyResultProvider 实现中如果 UnifyModel 的 type 不是范型会报错 #I3JBXF
    • [答疑] 如何模块化开发新功能? #I3J7ZZ
    • [答疑] 建议增加微服务中间件的集成 #I3JTZQ
  • 不做实现

v1.19.0

11 Apr 09:17
Compare
Choose a tag to compare
  • 新特性

    • [新增] EFCore 5.0 支持 SqlServer 2005-2008 数据库 #I3HZZ6
    • [新增] Sql 高级代理支持模板替换了 #I3HHWU #I3HH2T
    • [新增] PBKDF2 加密 #I3HN7A
    • [新增] 常用的 JSON 操作方法 #I3HUYO
    • [新增] 所有解析服务的方法都支持传入 IServiceProvidier 参数 #I3HXEU
  • 突破性变化

    • [升级] .NET 5 SDK 至 5.0.5 版本
  • 问题修复

    • [修复] 远程请求 application/x-www-form-urlencoded 自动被转码了 #I3HDPC
    • [修复] ISqlDispatchProxy 调用带返回值的存储过程出错 #I3HISS
    • [修复] 多数据库工作单元异常无法回滚数据 #I3I2KN #I3HYN5
    • [修复] Serilog 日志生成太多文件 #I3I2PN
    • [修复] 1.18.0 版本数据库连接池存在连接泄漏问题 #I3I5KO
    • [修复] Sqlite 提示事务已完成异常 #I3I9F2
  • 其他更改

    • [改进] 视图模板功能,默认支持可枚举泛型类型 #I3GYEE
    • [改进] 开发阶段 MiniProfiler 打印数据库相关信息 #I3I8VQ
    • [改进] EFCore 5.0 未提供 Sqlite 数据库 DataAdapter 的支持 #I3I9FC
  • 文档变化

    • [更新] 数据库上下文、多租户、仓储、日志、序列化等文档。
  • 问答答疑

    • [答疑] 建议 MVC 模式下增加 Furion 的功能 #I3GY4R
    • [答疑] 数据库关联操作 #I3H5QP
    • [答疑] 1.17.5 版本 suagger 无法生成 swagger.json #I3HGPZ
    • [答疑] Serilog 扩展+dll 启动与 swagger 的 MiniProfiler 冲突 #I3HWJM
    • [答疑] Sql 高级代理返回 DataTable 时,结果为空取不到记录 #I3HUWG
    • [答疑] Task.Run 操作数据库问题 #I3HZ9D
  • 不做实现


v1.18.0

03 Apr 09:00
Compare
Choose a tag to compare
  • 新特性

    • [新增] Oracle 11 版本支持 #I3EVL5
    • [新增] Mysql 官方包 MySql.EntityFrameworkCore 支持 #I3E6J1
    • [新增] 全局配置 WebApi 参数 [FromQury]#I3EFYJ
    • [新增] 公开框架底层依赖注入扫描注册拓展 services.AddRisterTypes(types) #I3EIV3
    • [新增] SqlSugar 工作单元特性 #I3EJO5
  • 突破性变化

  • 问题修复

    • [修复] 数据库上下文池一旦有上下文操作失败还数据库上下文出现二次提交数据库的问题 #I3EIJJ
    • [修复] 不同数据库命令参数前缀都添加了 @ 处理 #I3EBJP
    • [修复] 尝试修复事件总线线程安全问题 #I3EGSB #PR236
    • [修复] HttpContextExtensionsSignoutToSwagger 方法无效 #I3EHNQ
    • [修复] 如果动态 WebApi 贴了 [ApiController] 特性后,导致路由参数重复生成 #I3EOQQ
    • [修复] 如果没有任何 webapi 控制器时,文档报错 #I3EVLB
    • [修复] 依赖注入泛型类型注册失败 #I3EX66
  • 其他更改

    • [调整] SqlSugar 拓展库仓储 Context 属性类型未 SqlSugarClient #I3EHXA
    • [改进] 刷新 Token 黑名单 Redis 中分组 #I3EQWO
    • [改进] 远程请求在请求拦截次发起二次请求导致异常问题 #I3ER71
    • [改进] 多租户默认缓存改为分布式缓存 #I3EXEU
  • 文档变化

    • [更新] 数据库操作文档 #I3E84X
  • 问答答疑

    • [答疑] 如何方便的获取 IDynamicApiController API 产生的 url 和 谓词 #I3ED17
    • [答疑] Code First -执行命令 Add-Migration 遇到了问题 #I3EHD0
    • [答疑] tools v1.16.0 无法生成实体,一直提示 Missing required argument <PROVIDER>. #I3ENZ8
    • [答疑] Authorize 的 Logout 按钮,无法实时请空 token#I3EOF9
  • 不做实现


v1.17.0

30 Mar 11:13
Compare
Choose a tag to compare
  • 新特性

    • [新增] 动态 WebAPI 支持继承基类配置特性 #I3D5PX
    • [新增] 远程请求支持 multipart/form-data 内容类型处理 #I3D7KG
    • [新增] 字符串加密拓展 #I3DHBW
    • [新增] 新增远程请求可直接下载返回值内容转为 string 类型 #I3DIGR
    • [新增] 远程请求地址支持模板引擎 #I3D5Y8
    • [新增] [DataValidation] 错误消息支持 string.Format 操作 #I3E08W
    • [新增] 远程请求 HttpRequestMessage 拓展方法 AppendQueries() 追加更多 query 参数拓展 #I3E3DI
  • 突破性变化

    • [调整] IRepository.AsAsyncEnumerable() 返回值 #I3DIQ1,调整为:rep.AsQueryable().ToListAsync()
  • 问题修复

    • [修复] 数据验证失败后也打印了成功的字段 #I3CVBS
    • [修复] 远程请求配置 contentTypeapplication/x-www-form-urlencoded 无效问题#I3CWBS
    • [修复] 远程请求无法打印完整的请求地址,比如配置了 HttpClient 之后 #I3CY42
    • [修复] 程序启动时排除默认配置文件算法不对,应该采用正则表达式匹配 #I3D9E7
    • [修复] 远程请求成功请求拦截不生效 #I3DOE4
    • [修复] Dapper 拓展数据库切换为 oracle 时,系统找不到指定的文件 Oracle.ManagedDataAccess.Core #I3DYM3
  • 其他更改

    • [改进] 获取 JWT token 信息支持配置 Token 前缀,如 Bearer #I3DJIV
    • [改进] 刷新 Token 黑名单存储方式,将内存缓存调整为分布式缓存 #I3DPBR
  • 文档变化

    • [调整] 远程请求文档 #I3CPJO
  • 问答答疑

    • [答疑] LinqExpression.And 没有 2 个参数的方法 #I3CXKZ
    • [答疑] 异常信息 如何记录到数据库中:) #I3DDGO
    • [答疑] 无键实体选用 IEntityNotKey #I3DWRF
    • [答疑] 根据主键删除一条记录不成功,无错误信息 #I3DWWF
    • [答疑] 如何自定义接口返回格式 #I3DZN6
    • [答疑] DynamicApiController 如何在运行时决定是否公开一个 Action #I3D5UL
    • [答疑] Furion.DatabaseAccessor.DbHelpers 方法:ConvertToDbParameters 是不是应该过滤掉贴 NotMapped 的特性 #I3E2XS
  • 不做实现

    • [废弃] 框架是否提供 ISoftDelete 类似接口 #I3CP93

v1.16.0

23 Mar 08:16
Compare
Choose a tag to compare
  • 新特性

    • [新增] IDGenerator 雪花 ID 算法,感谢 idgenerator 作者提交 PR #PR204 #I3B60S
    • [新增] DbContext 刷新多租户缓存拓展方法 #I39N5U
    • [新增] 自定义配置单个控制器名称规范,如小写路由 #I3A5XL
    • [新增] 获取当前选择区域语言方法 #I3BSDH
  • 突破性变化

    • [升级] .NET 5 SDK 至 5.0.4 版本 #I3ASTL
    • [重构] 远程请求所有功能 #I2LB7M
    • [重构] JSON 序列化功能,提供统一的抽象接口,方便自由替换 JSON#I39GT9
    • [重构] 验证失败返回消息模型及规范化接口验证参数 #I3AFQW
    • [优化] 插件式开发热插拔功能,实现动态加载卸载 #PR200, 感谢 @SamWangCoder
    • [移除] 移除 JsonSerializerUtility 静态类及移除属性大写序列化拓展配置 #I3AFRJ
  • 问题修复

    • [修复] MVC 模式下不支持验证自定义验证逻辑 #I39LM5
    • [修复] 验证数值类型正则表达式不支持负数 bug #I39YUV
    • [修复] 框架启动时无法加载未被引用的程序集 bug #I3A3Z4
    • [修复] EFCoreRepository.IsAttached() 方法判断错误 bug #I3A824
    • [修复] 动态API 驼峰显示配置无效 bug #I3AF32
    • [修复] cli.ps1 不支持新版本 EFCore bug #I3APO9
    • [修复] EFCore 实体配置 [Table] 特性无效 bug #I3BAYH
    • [修复] 动态 WebAPI CheckIsSplitCamelCase bug #I3BLKX
    • [修复] 修复动态 WebAPI 配置保留 Action 的 Async 后缀无效问题 #I3C3DA
    • [修复] JWT Token 刷新后旧的刷新 Token 依旧可用 bug #I3C8ZH
    • [修复] 多语言 Razor 视图变量多语言乱码问题 #I3CBMU
  • 其他更改

    • [优化] 默认序列化提供器 System.Text.Json 反序列化字符串时区分大小写问题 #I3BSXV
    • [优化] 优化 MessageCenter 性能问题 #I39PRR
    • [优化] 数据库上下文池小性能优化
  • 文档变化

    • [新增] Docker 环境下自动化部署 #PR209
    • [新增] JSON 序列化 文档 #I3B6D8
    • [更新] 跨域、安全授权、即时通信文档、多语言、规范化文档
  • 问答答疑

    • [答疑] Furion.Extras.DatabaseAccessor.SqlSugar 配置多个数据库打印 SQL 语句问题 #I39PDC
    • [答疑] ORACLE 数据库多租户模式下返回值为指定类型时系统卡死 #I39RNH
    • [答疑] 假删除指向异常 #I39XZA
    • [答疑] Furion 多语言配置节是放在 AppSettings 里面还是外面呢? #I3A4SB
    • [答疑] 没找到数据库上下文 #I3A5HS
    • [答疑] 有 QQ 交流群吗? #I3AAM7
    • [答疑] Vue3 环境下配置 SignalR 跨域出错 #I3ALQ7
    • [答疑] 设置 Swagger 参数非必填 #I3AT02
    • [答疑] EFCore 调用 Insert 时报 Unknown column 'Discriminator' in 'field list' 异常 #I3B2LC
    • [答疑] 逆向 mysql 数据库时 cli 出现错误 #I3B64F
    • [答疑] Sql 高级代理使用过程中 DateTime 类型的参数序列化失败 #I3AZXK
    • [答疑] 使用 Mysql 执行 Add-Migration 报错 #I3B8EW
    • [答疑] Saas 多租户模式-独立 Database 模式下无法获取 Tenant, 导致无法自动切换的问题#I3AVXU
    • [答疑] 如何自定义 WebAPI 统一结果模型 #I3BBYW #I3BBYV
    • [答疑] 在 Web.Entry 项目新建了一个 Controller,多了未知方法 #I3BKH5
    • [答疑] AOP 拦截如何解析服务 #I3BUM3
    • [答疑] 动态 WebAPI 返回参数被省略 #I3C2XR
    • [答疑] 如何设置某一个接口响应数据不自动转小写,按原始字段名返回 #I38L9B
    • [答疑] code first 如何配置自动迁移 #I3CCR0
    • [答疑] webapi 混合授权如何区分不同系统 #I3CJCY
    • [答疑] EFCore 不支持递归无限级遍历关系 #I3CET9
  • 不做实现

    • [废弃] 建议 EFCore 可配置外键关系导航问题 #I3994X
    • [废弃] 建议将 EFCore 剥离出来,作为插件的形式提供。这样可以选择自己喜欢的 ORM #I3ABNX
    • [废弃] 事件总线能否提供返回值 #I3AWL6
    • [废弃] Sql 模板能仿照 Mybatis 一样加各种标签吗?#I3ASRS
    • [废弃] EFCore 更新或排除更新指定列支持传入 DTO 模型 #I3AS5K
    • [废弃] 新增 UnitOfWork 事务完成事件 #I3BRMI

v1.15.0

25 Feb 08:48
Compare
Choose a tag to compare
  • 新特性

    • [新增] 跳过特定实体数据库操作监听特性 #I386LB
    • [新增] IEntityChangedListener 增加对 OldEntity 的支持 #I385X2
    • [新增] 实时通信自动配置集线器拓展及特性 #I387QX
    • [新增] Mapster 拓展支持 IMapper 依赖注入方式 #I38C7C
    • [新增] [AppDbContext] 特性默认构造函数 #I38J97
    • [新增] UnifyContext.GetExceptionMetadata(context) 返回错误码支持 #I38ONX
  • 突破性变化

  • 问题修复

    • [修复] 多次循环中调用 Db.GetNewDbContext() 还是获取到同一个对象 #I38NNP
    • [修复] Swagger 过滤掉 object 类型属性问题 #I38FHL
    • [修复] 同一类不支持多继承 IEntityChangedListener 问题 #I38UQJ
    • [修复] 自定义序列化属性名称导致验证失败属性不匹配问题 #I38W8Z
  • 其他更改

    • [优化] 代码不规范命名导致开发者阅读代码时产生歧义
  • 文档变化

    • [新增] FluentValidation 集成文档 #I38IOT
  • 问答答疑

    • [答疑] Furion 框架版本向下兼容问题 #I38WMZ
  • 不做实现

    • [废弃] 建议 SqlSugar 添加动态切换数据库功能 #I38G4M
    • [废弃] 建议 MessageCenter 采用 Channel 实现 #I38BP8
    • [废弃] 建议接口文档整合 Knife4jUI 或 Redoc #I38S70

v1.14.0

16 Feb 07:45
Compare
Choose a tag to compare
  • 新特性

    • [新增] EFCore 5.0 的 Oracle 数据库支持 #I37Z8E
    • [新增] 控制是否在开发环境下显示数据库连接信息 #I37YQ2
    • [新增] [NonUnify] 支持在类中贴此特性 #I359Q6
    • [新增] 网络请求 字符串 HttpClient 拦截器 #I35F3E
    • [新增] HttpContextHttpRequest 获取远程地址拓展 #I3688Z
    • [新增] services.AddMvcFilter<> 添加 Mvc 过滤器拓展 #I368BH
  • 突破性变化

    • [升级] 框架依赖的 .NET 5 SDK 至最新版 5.0.3 #I37YQQ
    • [升级] Swashbuckle.AspNetCore 组件包到 6.0.x 版本 #I37EZK
    • [移除] Furion 框架 JWT 拓展类,只在 Furion.Extras.Authentication.JwtBearer 中保留 #I35D59
  • 问题修复

    • [修复] 传入错误 JWT Token 字符串导致自动刷新 Token 出现字符串边界值异常 bug #I34ZE5
    • [修复] 瞬时作用域数据库上下文也会自动加入工作单元导致写日志时连锁异常 bug #I37WTV
  • 其他更改

    • [优化] 获取系统环境参数的性能 #I36SR5
    • [优化] Furion 底层添加 Mvc 过滤器代码 #I36SKA
    • [优化] 添加默认 Json 序列化时间默认时间格式 #I36SL0
    • [升级] 升级 SqlSugar 拓展包到 5.0.2.6 版本 #I36SIG
  • 文档变化

    • [新增] 数据库入门问 #I37Z8S
    • [新增] 更新日志文档 #I36PI0
    • [新增] 请求审计日志、执行 Sql 更新日志文档 #I36PIK
    • [新增] 前端使用 axios 跨域配置文档 #I36PIT
    • [新增] App 静态类获取应用、环境更多信息数据 #I36SOV
    • [新增] 英文版 README.md 介绍 #I37QHP
  • 问答答疑

  • 不做实现

    • [废弃] 多语言资源文件自动创建 #I35AA4
    • [废弃] 建议多语言加上维吾尔语支持 #I37X1L

v1.13.0

02 Feb 05:26
Compare
Choose a tag to compare
  • 新特性

    • [新增] 多语言功能及拓展 #I2DOCL
    • [新增] 事件总线功能及消息中心 #I23BKN
    • [新增] Swagger 分组显示隐藏配置 #I2AHH8
    • [新增] Furion.Extras.Logging.Serilog 拓展插件 #I2AAN8
    • [新增] cli.ps 支持 -Namespace 命名空间指定 #I2A175
    • [新增] Swagger 规范化化文档授权失效后自动取消授权锁 #I2AIWC
    • [新增] Request.Body 支持重复读功能,主要解决微信SDK问题 #I2AMG0
    • [新增] 网络请求功能及文档 #I2APGJ
    • [新增] SqlSugar 拓展包支持打印 sqlMiniProfiler#I2ASLS
    • [新增] Furion.Extras.DatabaseAccesssor.Dapper 拓展插件 #I2ASYA
    • [新增] Furion.Extras.DatabaseAccessor.PetaPoco 拓展插件 #I2AUGA
    • [新增] 网络请求字符串拓展方法 #I2CPQ0
    • [新增] SqlSugar 拓展新增 PagedList 拓展 #I2CW99
    • [新增] 远程请求支持参数特性验证 #I2CX5L
    • [新增] App.User 获取当前授权用户信息便捷方法 #I2CZLO
    • [新增] 规范化文档可配置功能,支持 appsettings.json 配置 #I2D1K9
    • [新增] 远程请求拦截器添加方法和方法参数 #I2D2CM
    • [新增] 远程请求出错返回默认值支持 #I2D44M
    • [新增] 远程请求 body 参数序列化支持设置 PropertyNamingPolicy #I2D685
    • [新增] 远程服务接口客户端配置 #I2D7PS
    • [新增] AddInjectUseInject 允许自定义 SecurityDefinitionsSwaggerUI #I2DIMG
    • [新增] [SecurityDefine] 默认构造函数 #I2DNXT
    • [新增] AspectDispatchProxy 动态代理类 #I2DO6I
    • [新增] [QueryParameters] 特性,支持一键将 Action 参数添加 [FromQuery] 特性 #I2G8TF
    • [新增] 动态日志配置及拓展方法 #I2GDGD
    • [新增] WebApi 请求谓词默认规则配置功能 #I2M70X
  • 突破性变化

    • [升级] .NET 5 SDK 到 .NET 5.0.2 版本 #I2D0PZ
    • [调整] 框架内所有拓展类命名空间,全部迁移到 Furion.模块.Extensions#I2AH54
    • [调整] Swagger 记住授权存储方式,替换 Session 存储方式为 LocalStorage 方式 #I2AKUA
    • [调整] Furion 框架包描述文件,减少框架体积 #I2APAU
    • [调整] App.CanBeScanTypesApp.EffectiveTypes #I2B0ZR
    • [调整] App.ServiceProvider 属性并移除 App.GetDuplicateXXX 方法 #I2CYZE
    • [调整] Db.GetDuplicateDbContextDb.GetNewDbContext #I2CZ04
    • [调整] Db.GetSqlDispatchProxyDb.GetSqlProxy #I2DO9T
    • [重构] Aop 服务拦截器,支持异步、同步两种方式 #I2B9HQ
    • [重构] 网络请求所有功能 #I2BMR7
  • 问题修复

    • [修复] Swagger 规范化化结果不一致 bug #I2ACF3
    • [修复] 数据库新增或更新忽略空值操作方法报空异常 #I2AB6C
    • [修复] Startup.cs Aop 全局拦截无效 #I2A7T2
    • [修复] Token 过期后自动刷新 Token 无法获取最新的用户信息 bug #I2AWQI
    • [修复] [ApiDescriptionSettings(Tag="xx")] 导致 swagger.json 报错 bug #I2B47R
    • [修复] Mysql sql 数据库查询结果 tinyint 类型转换出错 bug #I2BEBM
    • [修复] 规范化结果多次包裹类型 bug #I2BHHZ
    • [修复] 动态Api 基元类型数组问题 #I2BMS5
    • [修复] sql 查询枚举类型转换异常 bug #I2BS2Y
    • [修复] string.SqlQuerizeAsync<T1>() 拓展返回错误 bug #I2BSTS
    • [修复] 动态Api子类重写父类方法并取别名后 Swagger 异常bug #I2C9VP
    • [修复] 网络请求 application/json 序列化大小写问题 #I2CRJC
    • [修复] 多数据库定位器实体嵌套关联 bug #I2CVN0
    • [修复] 跨域响应头设置无效 bug #I2CW5T
    • [修复] 远程网络请求代理打印到 MiniProfiler bug #I2CZBC
    • [修复] 远程请求响应拦截器 bug #I2D4DG
    • [修复] SqlSugar 框架 AsQueryable() 一直追加参数 #I2DH1D
    • [修复] 自动刷新 Token 空异常 bug #I2DO29
    • [修复] 生成 JWT Token 不传过期时间出现验证 401 bug #I2DO8L
    • [修复] AppStartup 排序无效 #I2DVD2
    • [修复] 未启用多语言服务时友好异常和验证出现空异常 #I2ECUJ
    • [修复] 数据校验字母和数字组合无法匹配 bug #I2EF2Q
    • [修复] 数据校验手机或固话无效 bug #I2M5IZ
    • [修复] Dapper 拓展解析 SqlConnection 异常 bug #I2M5P2
    • [修复] 开启多语言后,EF 迁移异常 bug #I2M7DT
    • [修复] IEntityTypeBuilder 不支持多重继承 bug #I2PAOD
    • [修复] JwtHandler 设置自动刷新后,匿名访问无法通过 bug #I2SDOX
    • [修复] Dapper 拓展中 SqlServer 数据库获取连接对象类型 bug #PR159
  • 其他更改

    • [优化] 移除 Sql 查询结果映射检查 [NotMapper] 特性机制 #I34XD0
    • [优化] 依赖注入时排除 IDynamicApiController 接口 #I2ECTG
    • [优化] MD5 加密性能 #PR158
  • 文档变化

    • [重构] 文档首页 #I34XBR
    • [新增] 网络请求文档 #I2APGJ
    • [新增] 多语言文档 #I2DOCL
    • [新增] 文档全文搜索引擎 #I34XAW
    • [新增] 全局静态类类型 #I34XB4
    • [新增] 框架可配置选项文档 #I34XB9
    • [新增] 事件总线文档 #I34XBI
    • [新增] 数据加解密文档 #I34XC0
    • [新增] 贡献指南文档 #I34XC8
    • [新增] HttpContext文件上传下载 博客文章 #I34XCB
  • [其他] 文档小调整,小优化

  • 问答答疑

    • [答疑] 跨域设置无效 #I2ASNJ
    • [答疑] MVC 视图无效,原因是 .cshtml 文件没有设置为 内容 #I2AXUU
    • [答疑] Sql 操作可以实现事务吗?#I2B0NX
    • [答疑] IRepository 操作数据库会打开多次数据库连接 #I2BB7B
    • [答疑] 如何进入自定义 AppAuthorizeHandler 断点 #I2BGXY
    • [答疑] SqlSugar 注入问题 #I2C2AQ
    • [答疑] 建议增加 API 签名验证,时效验证 #I2C6ET
    • [答疑] 多数据库多租户同时使用 Add-Migration 报错 #I2CEHS
    • [答疑] ISqlSugarRepository 没有 Getxxx 方法 #I2CJLZ
    • [答疑] cli.ps1 如何将 sql 里的表导出成 model#I2CSUL
    • [答疑] 手动修改 Swagger 终结点路径无效 #I2D608
    • [答疑] DefaultDbContext 不能识别 #I2DCZX
    • [答疑] 各分层项目 Startup.cs 支持 Configuration #I2DDUP
    • [答疑] Aop 无法拦截,无效 #I2DEY8
    • [答疑] mysql 执行 Add-Migration 报错 #I2DSB8\
    • [答疑] Entity 创建时间和是否删除添加默认值 #I2E04H
    • [答疑] swagger 中多个 servers 设置 #I2E0IF
    • [答疑] 全局筛选器 没有执行 #I2E5R4
    • [答疑] 多数据库定位器疑问 #I2E77T
    • [答疑] cli.ps 逆向工程 Mysql 数据库报错 #I2E7I5
    • [答疑] Swagger 开发环境 applicationsettings.json 中文乱码 #I2EAG1
    • [答疑] 增加指定路径程序集映射 #I2EEO2
    • [答疑] 动态编译 cs 脚本文件 #I2EH66
    • [答疑] 自定义中间件,返回的错误没有规范化结果 #I2NV8S
    • [答疑] Swagger 循环引用设置生成文档层级无效 [#I2PLQQ](htt...
Read more

v1.7.0

22 Dec 04:15
Compare
Choose a tag to compare
  • 新特性

    • [新增] Furion.Extras.ObjectMapper.Mapster 拓展包 #I29LSJ
    • [新增] Furion.Extras.Logging.Serilog 拓展包 #I2AAN8
    • [新增] Furion.Extras.Web.HttpContext 拓展包 #I29LSM
    • [新增] 内置 Token 刷新机制支持 #I29K57
    • [新增] 动态数据库上下文,支持运行时执行 OnModelCreating #I28UDT
    • [新增] 支持依赖注入排除指定接口 #I29693
    • [新增] 规范化结果返回时间戳字段 #I29697
    • [新增] 基础 CURD 父类操作例子 #I296SR
    • [新增] sql.Change("定位器完整类型名称") 支持 #I29LAB
    • [新增] UpdateIncludeUpdateExclude 忽略空参数支持 #I29VUG
    • [新增] 数据库上下文内置假删除查询过滤器支持 #I29Y2R
    • [新增] 忽略空值排除默认时间格式 #I29VUV
    • [升级] MiniProfiler 组件 #I297R9
  • 突破性变化

    • [调整] AppAuthorizeHandler 授权管道为异步处理 #I29MD9
    • [调整] Swagger 默认启用 JWT 授权支持 #I29LI4
    • [调整] HttpContextUtilities 名称改为 HttpContextLocal #I29KQE
    • [调整] UnifyResultContext 名称改为 UnifyContext #I29LLZ
    • [调整] 只有执行迁移命令才扫描种子数据 #I29E6P
    • [调整] 规范化结果 Successed 属性名为 Succeeded #I29NMV
    • [移除] Mapster 对象组件,采用提供拓展方式 #I29D2M
    • [移除] CacheManager 拓展类 #I29LU1
    • [重构] SaveChanges 拦截器 #I292LO
  • 问题修复

    • [修复] 未注册的数据库上下文也被引用全局查询拦截器 bug #I29ZXJ
    • [修复] 手动返回 BadObjectResultValidationProblemDetails 结果类型时规范化结果失效 bug #I29ZU9
    • [修复] 动态WebApi KeepNameKeepVerbSplitCamelCase 无效 bug #I29X90
    • [修复] Sql代理 返回 元组 类型出错 bug #I29SMV
    • [修复] 401,403 状态码规范化返回值属性变大写 bug #I29M8Y
    • [修复] HttpContext 空异常 bug #I29LU4
    • [修复] 接口无返回值没有应用规范化结果 bug #I29GT7
    • [修复] 前端 Less 配置文件导致主机启动失败 bug #I29E7P
    • [修复] 执行 sql 结果转泛型后属性重复赋值 bug #I29BUO
    • [修复] Swagger 关闭 MiniProfiler 之后 组中组 失效 #I29789
    • [修复] 未启用规范化结果时异常返回 System.Object 字符 #I2969A
    • [修复] 正数数据验证 0 也验证通过 bug #I2955T
    • [修复] 非泛型类集成泛型接口依赖注入 bug #I294YT
    • [修复] Swagger 不支持 new 覆盖父类的 bug #I28Z1A
    • [修复] JsonSerializerUtility 没有公开 bug #I28WMI
    • [修复] SqlSugar 拓展查询泛型类型注册异常 bug #I28VMT
    • [修复] Furion Tools 不支持生成不同命名空间的实体 bug #I2A175
    • [修复] 全局拦截器无效 bug #I2A7T2
    • [修复] 新增或更新忽略空值空异常 bug #I2AB6C
  • 其他更改

    • [优化] Token 生成加密算法 #I29KIH
  • 文档变化

    • [新增] 日志文档 #I28Y9D
    • [调整] 数据库上下文、实体拦截器、配置、一分钟入门等等文档
  • 问答答疑

    • [问答] Swagger 如何实现授权访问 #I294F2
    • [问答] 如何实现多个数据库多对多实体配置 #I29G6S
    • [问答] 动态WebApi支持文件上传吗 #I29R5E
    • [疑问] 多个数据库上下文无法生成迁移代码 #I2A6II
  • 不做实现

    • [废弃] 实现 BuildChange 传入表名 #I292SN
    • [废弃] 执行数据库操作结果不支持属性忽略大小写赋值 #I29DRQ
    • [废弃] 引入 Webhook 机制 #I2A3I0