update

28810
2019-08-25 18:12:21 +08:00
parent 6031aa7a3b
commit 8355089965
2 changed files with 22 additions and 0 deletions

18
AOP.md

@@ -21,6 +21,24 @@ fsql.Aop.CurdAfter = (s, e) => {
除了 CurdAfter还有一个 CurdBefore (在执行 sql 之前触发)。 除了 CurdAfter还有一个 CurdBefore (在执行 sql 之前触发)。
## 审计属性值
实现插入/更新时统一处理某些值,比如某属性的雪花算法值、创建时间值、甚至是业务值。
```csharp
fsql.Aop.AuditValue += (s, e) => {
if (e.Column.CsType == typeof(long)
&& e.Property.GetCustomAttribute<SnowflakeAttribute>(false) != null
&& e.Value?.ToString() == 0)
e.Value = new Snowflake().GetId();
};
```
> 当属性的类型是 long并且标记了 [Snowflake],并且当前值是 0那么在插入/更新时它的值将设置为雪花id值。
> 说明SnowflakeAttribute 是使用者您来定义new Snowflake().GetId() 也是由使用者您来实现
如果命名规范,可以在 aop 里判断if (e.Property.Name == "createtime") e.Value = DateTime.Now;
## 审计迁移脚本 ## 审计迁移脚本
FreeSql 自带迁移功能,那么迁移的 SQL 语句长啥样,你可能会好奇。 FreeSql 自带迁移功能,那么迁移的 SQL 语句长啥样,你可能会好奇。

@@ -1,6 +1,10 @@
完整版本:年数-月-日-当日版本号FreeSql、FreeSql.Repository、FreeSql.DbContext 版本号相同。 完整版本:年数-月-日-当日版本号FreeSql、FreeSql.Repository、FreeSql.DbContext 版本号相同。
## v0.8.11
- 增加 Aop.AuditValue 事件,在插入/更新数据时审计属性值,[wiki](https://github.com/2881099/FreeSql/wiki/AOP)
## v0.8.10 ## v0.8.10
- 修复 Pgsql 批量更新使用 NoneParameter 后日期类型的语法 bug - 修复 Pgsql 批量更新使用 NoneParameter 后日期类型的语法 bug