diff --git a/返回数据.md b/返回数据.md index 78b0019..629d0dd 100644 --- a/返回数据.md +++ b/返回数据.md @@ -1,6 +1,6 @@ **中文** | [English](Return-Data) -FreeSql 采用 ExpressionTree 优化读取速读,如果懂技术的你一定知道 .NETCore 技术下除了原生代码,最快就是 Emit 和 ExpressionTree。项目在初期使用的反射+缓存,虽然 .NETCore 优化了反射性能,但经过与Dapper性能测试对比之后,发现仍然有一定差距,改成 ExpresstionTree 后才与 Dapper 性能相当。FreeSql 支持的类型较多,实现 ExpressionTree 的复杂度较大,有兴趣的朋友可以翻阅源代码。 +FreeSql 采用 ExpressionTree 优化读取速度,如果懂技术的你一定知道 .NET Core 技术下除了原生代码,最快就是 Emit 和 ExpressionTree。项目在初期使用的反射 + 缓存,虽然 .NET Core 优化了反射性能,但经过与 Dapper 性能测试对比之后,发现仍然有一定差距,改成 ExpresstionTree 后才与 Dapper 性能相当。FreeSql 支持的类型较多,实现 ExpressionTree 的复杂度较大,有兴趣的朋友可以翻阅源代码。 ## 1、返回单条记录 ```csharp @@ -64,18 +64,18 @@ List<匿名类> t10 = fsql.Select().ToList(a => new { > 常量机制早期留给了原生SQL,如果真的需要返回该字符串:"'xxx'" -### 6、忽略字段返回 +## 6、忽略字段返回 参考实现:https://github.com/dotnetcore/FreeSql/issues/528 -### 7、ToSql +## 7、ToSql 每个 ToList 都可以使用 ToSql 返回 SQL String,有两个选项: - FieldAliasOptions.AsIndex(默认) 自动产生 as1, as2, as3 .... 字段别名,可以最大程度防止多表,存在相同字段的问题; - FieldAliasOptions.AsProperty 使用属性名作为字段别名,合适使用二次构造 SQL 再次执行; -### 8、执行SQL +## 8、执行SQL ```csharp class xxx { public int Id { get; set; }