Releases: MonkSoul/Furion
Releases · MonkSoul/Furion
v1.18.0
-
新特性
-
突破性变化
-
问题修复
-
其他更改
-
文档变化
- [更新] 数据库操作文档 #I3E84X
-
问答答疑
-
不做实现
v1.17.0
-
新特性
-
突破性变化
- [调整]
IRepository.AsAsyncEnumerable()
返回值 #I3DIQ1,调整为:rep.AsQueryable().ToListAsync()
- [调整]
-
问题修复
-
其他更改
-
文档变化
- [调整] 远程请求文档 #I3CPJO
-
问答答疑
- [答疑]
LinqExpression.And
没有 2 个参数的方法 #I3CXKZ - [答疑] 异常信息 如何记录到数据库中:) #I3DDGO
- [答疑] 无键实体选用
IEntityNotKey
#I3DWRF - [答疑] 根据主键删除一条记录不成功,无错误信息 #I3DWWF
- [答疑] 如何自定义接口返回格式 #I3DZN6
- [答疑] DynamicApiController 如何在运行时决定是否公开一个 Action #I3D5UL
- [答疑]
Furion.DatabaseAccessor.DbHelpers
方法:ConvertToDbParameters
是不是应该过滤掉贴NotMapped
的特性 #I3E2XS
- [答疑]
-
不做实现
- [废弃] 框架是否提供
ISoftDelete
类似接口 #I3CP93
- [废弃] 框架是否提供
v1.16.0
-
新特性
-
突破性变化
-
问题修复
- [修复]
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
- [修复]
-
其他更改
-
文档变化
-
问答答疑
- [答疑]
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
- [答疑]
-
不做实现
v1.15.0
v1.14.0
-
新特性
-
突破性变化
-
问题修复
-
其他更改
-
文档变化
-
问答答疑
-
不做实现
v1.13.0
-
新特性
- [新增] 多语言功能及拓展 #I2DOCL
- [新增] 事件总线功能及消息中心 #I23BKN
- [新增]
Swagger
分组显示隐藏配置 #I2AHH8 - [新增]
Furion.Extras.Logging.Serilog
拓展插件 #I2AAN8 - [新增]
cli.ps
支持-Namespace
命名空间指定 #I2A175 - [新增]
Swagger
规范化化文档授权失效后自动取消授权锁 #I2AIWC - [新增]
Request.Body
支持重复读功能,主要解决微信SDK问题 #I2AMG0 - [新增] 网络请求功能及文档 #I2APGJ
- [新增]
SqlSugar
拓展包支持打印sql
到MiniProfiler
中 #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
- [新增]
AddInject
和UseInject
允许自定义SecurityDefinitions
和SwaggerUI
#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.CanBeScanTypes
为App.EffectiveTypes
#I2B0ZR - [调整]
App.ServiceProvider
属性并移除App.GetDuplicateXXX
方法 #I2CYZE - [调整]
Db.GetDuplicateDbContext
为Db.GetNewDbContext
#I2CZ04 - [调整]
Db.GetSqlDispatchProxy
为Db.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
- [修复]
-
其他更改
-
文档变化
-
[其他] 文档小调整,小优化
-
问答答疑
- [答疑] 跨域设置无效 #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...
v1.7.0
-
新特性
- [新增]
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 - [新增]
UpdateInclude
和UpdateExclude
忽略空参数支持 #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
- [修复] 手动返回
BadObjectResult
或ValidationProblemDetails
结果类型时规范化结果失效 bug #I29ZU9 - [修复] 动态WebApi
KeepName
,KeepVerb
、SplitCamelCase
无效 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
- [调整] 数据库上下文、实体拦截器、配置、一分钟入门等等文档
-
问答答疑
-
不做实现
v1.4.3
-
新特性
- [新增]
Furion
支持二级虚拟目录部署功能 #I28B77 - [新增]
Furion.Template.RazorWithWebApi
脚手架 #I28QGI - [新增]
Furion.Template.BlazorWithWebApi
脚手架 #I27Z3O - [新增]
EFCore
时态查询拓展 #I28AJ - [新增]
[AppDbContext(连接字符串,数据库类型)]
配置支持 #I28QTB - [新增]
DateTimeOffset
转DateTime
拓展方法 #I27MQA - [新增]
ValidationTypes
验证正则表达式智能提示 #I2801V - [新增]
ValiationTypes.WordWithNumber
验证 #I2805 - [新增] 获取客户端和服务端 IP 地址 #I28QV9
- [新增]
-
突破性变化
-
问题修复
- [修复] 多数据库上下文配置定位器后实体无法正确生成 bug #I2888L
- [修复] 多租户数据库上下文实体生成 bug #I2891G
- [修复] 对象验证失败提示消息没有应用
JSON
大小写配置 bug #I27UTX - [修复] 仓储
Insert
或Update
方法指定ignoreNullValues
无效 bug #I27UN6 - [修复]
Controller
派生类如果贴了[Route]
特性后出现在Swagger
中 bug #I27TN7 - [修复]
SqlScalar
执行sql
返回Nullable
类型出现转换失败 bug #I27S2N - [修复]
[UnitOfWork]
特性异常 bug #I27MLM - [修复]
sql
静态执行方式和sql
高级代理无法监听数据库连接状态 bug #I27M4F - [修复] 修复更换Json序列化库无效 bug,如替换为
Microsoft.AspNetCore.Mvc.NewtonsoftJson
#I27M43 - [修复]
Furion Tools
工具生成模型 bug #I27XI5 - [修复] 软删除没有生效 bug #I2804I
- [修复]
Furion Tools
识别带多个\\
的连接字符串识别 bug #I280TS,#PR91 - [修复]
Furion Tools
无法取消生成 bug #I2816M - [修复]
DateTimeOffset
转本地时间差 8 小时 bug #I28BA9 - [修复] 启用
bundle js&css
压缩后启动异常 bug #I28KR - [修复]
ValidationTypes.Required
无效 bug #PR98 - [修复] 规范化结果
OnValidateFailed
参数名拼写错误 bug #PR93,#PR92 - [修复] 授权管道验证失败还显示结果 bug #PR89
-
其他更改
-
文档变化
-
问答答疑
- [建议] 希望
api
返回的值自动将 null 转为 '' 或 [] #I286IJ,【已关闭】 - [建议] 添加网关功能 #I27TP7,【已关闭】
- [建议] 新增
SqlQuery<T>
获取单条记录方法 #I28M1V,【已关闭】 - [建议] 希望可以提供集成
Serilog
例子 #I282J4,【已关闭】 - [疑问] 如何通过特性配置唯一约束 #I2891L,【已关闭】
- [疑问] 怎么读取
appsettings.json
数组 #I27WU,【已关闭】 - [疑问]
IRepository<TEntity>
出现空异常 #I281IE,【已关闭】 - [疑问] 规范化接口问题问题 #I28NMZ,【已关闭】
- [疑问] 统一返回值模型中OnResponseStatusCodes未执行 #I28NNL,【已关闭】
- [建议] 希望
v1.1.9
-
新特性
- [新增] 雪花算法 #I26OXG, #PR78
- [新增]
[AppDbContext]
配置数据库提供器支持 #I27G3T - [新增] 实体表数据更改监听接口
IEntityDataChangedListener
#I278DD, #I278LQ - [新增] 全局服务接口AOP拦截功能 #I278CP
- [新增] 定位器仓储
IDbRepository<TDbContextLocator>
#I276Q3 - [新增] 数据库操作
InsertOrUpdate
支持排除空字符串功能 #I272OG - [新增] 数据库操作
UpdateInclude
和UpdateExclude
匿名对象支持 #I271X0 - [新增] 数据验证传入空对象跳过验证支持 #I273R4
- [新增] 应用启动时支持排除特定配置文件自动加载 #I26U0A
- [新增] 单个实体表名前缀支持 #I26LX0
- [新增]
MySql
数据库自动配置默认版本号 #I26XQ6 - [优化] 授权处理程序代码
-
突破性变化
-
问题修复
- [修复] 视图引擎加载外部程序集出错 bug
- [修复] 依赖注入代理接口报空对象异常 bug
- [修复]
EFCore
取消附加实体出错 bug - [修复] 数据库仓储在非Web请求下出现空异常 bug
- [修复] 多个授权策略共存问题出现无效 bug
- [修复] 友好异常
Oop.Oh
不支持普通方法 bug - [修复] 获取多租户对象时数据库上下文出现作用域验证失败 bug
- [修复] 工作单元不支持
Sql代理
拦截 bug #I27GST
-
其他更改
-
文档变化
- [新增] 实体数据监听器 文档
- [更新] 一分钟入门、应用启动、官方脚手架、数据库操作指南、对象映射、规范化文档、异常处理、鉴权授权文档
v1.1.0
-
新特性
- [新增]
Db.GetDbContext()
获取默认数据库上下文方法 - [新增]
HttpContextUtility.GetCurrentHttpContext()
获取全局HttpContext
上下文 - [新增]
App.GetRequiredService<>
解析服务方法 - [新增]
object.GetService<>
对象拓展方法 - [新增] 策略授权
PolicyPipeline
基类方法,支持多重判断授权 - [新增]
JWTEncryption.ValidateJwtBearerToken
手动验证静态方法 - [新增] 全局数据库上下文
InsertOrUpdateIgnoreNullValues
和EnabledEntityStateTracked
全局配置 - [新增]
Swagger Jwt授权
全局授权参数 #I26GLR - [新增]
InsertOrUpdate
支持自定义判断条件功能 #I269Q1 - [新增] 字符串字段小写命名支持 #I2695D
- [新增] 字符串文本对比功能 #I268LE
- [新增] 全局异常特性消息功能 #I2662O
- [新增]
Insert
或Update
数据库忽略空值功能 #I264Q4
- [新增]
-
突破性变化
- [调整]
Fur
项目名为Furion
- [调整]
Db.GetRequestDbContext<>()
命名为Db.GetDbContext<>()
- [调整]
Db.GetDbContext<>()
命名为Db.GetDuplicateDbContext<>()
- [重构]
App.GetService<>
解析服务的底层逻辑,大大提高了解析服务的性能 - [重构] 授权核心代码,保持和微软一致的授权规范 #I26DCB
- [移除]
App.GetRequestService<>
方法 - [移除]
ValidateJwtBearer
Jwt授权方法,无需手动判断了
- [调整]
-
问题修复
- [修复] Furion 官方脚手架生成后编译异常 bug
- [修复]
Tenant
内置属性不是virtual
修饰 bug - [修复]
dockerfile
新命名构建失败 bug - [修复] 自定义角色授权和多个授权共存出现 403 bug #I26H1L
- [修复]
httpContext.GetEndpoint()
空异常 bug #PR73 - [修复]
Oops.Oh
空异常和不支持服务服务抛异常 bug #I26EFU,#I26GM4 - [修复]
cli.ps
生成文件编码乱码 bug #I26DVT - [修复]
Swagger
文件上传按钮不显示 #I26B6U - [修复] 规范化结果授权状态码序列化大小写不一致问题 #I26B26
- [修复] 未启用规范化结果时中文乱码 bug #I268T5
- [修复]
MySql
异步异常捕获不到 bug #I265SO - [修复]
cli.ps1
提示找不到数据库连接字符串 bug #I2647U
-
其他更改
-
文档变化
- [更新] 一分钟入门、安全鉴权、数据库等文档