update

28810
2019-03-21 23:46:28 +08:00
parent 7a07818b98
commit 9ad6d947d5
2 changed files with 43 additions and 0 deletions

@@ -1,6 +1,15 @@
完整版本:年数-月-日-当日版本号FreeSql、FreeSql.Repository、FreeSql.DbContext 版本号相同。 完整版本:年数-月-日-当日版本号FreeSql、FreeSql.Repository、FreeSql.DbContext 版本号相同。
## v0.3.22
- 优化 导航属性 ManyToOne 名称查找规则;
- 增加 IFreeSql.Aop 属性,未来所有拦截方法都在这里,第一期支持如下:
* 监控 ToList 返回的的数据,用于拦截重新装饰;
* 监视 Where包括 select/update/delete返回值 true 时可使上层不被执行;
* 可自定义解析表达式;
- 增加 ISelect.TractToList用于单次跟踪或审核实体
## v0.3.21 ## v0.3.21
- 增加 IUpdate IgnoreColumns 重载方法,支持传入字符串数组忽略修改; - 增加 IUpdate IgnoreColumns 重载方法,支持传入字符串数组忽略修改;

@@ -43,6 +43,40 @@ var t3 = select.OrderBy(a => Guid.NewGuid()).Limit(1).ToSql();
//ORDER BY newid() //ORDER BY newid()
``` ```
## AOP拦截实现自定义解析
IFreeSql 对象有 Aop 成员,那里提供一堆 AOP 拦截的方法。其实有一个事件名称ParseExpression。
```csharp
/// <summary>
/// 可自定义解析表达式
/// </summary>
EventHandler<AopParseExpressionEventArgs> ParseExpression { get; set; }
public class AopParseExpressionEventArgs : EventArgs {
public AopParseExpressionEventArgs(Expression expression, Func<Expression, string> freeParse) {
this.Expression = expression;
this.FreeParse = freeParse;
}
/// <summary>
/// 内置解析功能,可辅助您进行解析
/// </summary>
public Func<Expression, string> FreeParse { get; }
/// <summary>
/// 需要您解析的表达式
/// </summary>
public Expression Expression { get; }
/// <summary>
/// 解析后的内容
/// </summary>
public string Result { get; set; }
}
```
FreeParse 是提供给外部的解析工具,它拥有 FreeSql 所有表达式功能,当您自定义解析的过程中遇到特别难处理的,可通过它快速解析出表达式的子部分内容。
## 表达式函数全览 ## 表达式函数全览
| 表达式 | MySql | SqlServer | PostgreSQL | Oracle | 功能说明 | | 表达式 | MySql | SqlServer | PostgreSQL | Oracle | 功能说明 |