mirror of
https://github.com/dotnetcore/FreeSql.git
synced 2026-02-06 16:30:52 +08:00
update
24
多表查询.md
24
多表查询.md
@@ -154,6 +154,30 @@ var subquery = select.ToSql(a => new {
|
||||
});
|
||||
```
|
||||
|
||||
## WhereCascade
|
||||
|
||||
多表查询时,像isdeleted每个表都给条件,挺麻烦的。WhereCascade使用后生成sql时,所有表都附上这个条件。
|
||||
|
||||
如:
|
||||
|
||||
```csharp
|
||||
fsql.Select<t1>()
|
||||
.LeftJoin\<t2\>(...)
|
||||
.WhereCascade(x => x.IsDeleted == false)
|
||||
.ToList();
|
||||
```
|
||||
|
||||
得到的 SQL:
|
||||
|
||||
```sql
|
||||
SELECT ...
|
||||
FROM t1
|
||||
LEFT JOIn t2 on ...
|
||||
WHERE t1.IsDeleted = 0 && t2.IsDeleted = 0
|
||||
```
|
||||
|
||||
当其中的实体可附加表达式才会进行,包括子表查询,单次查询使用的表数目越多收益越大。
|
||||
|
||||
## 参考资料
|
||||
|
||||
- [《利用导航属性查询》](https://github.com/2881099/FreeSql/wiki/%e5%88%a9%e7%94%a8%e5%af%bc%e8%88%aa%e5%b1%9e%e6%80%a7)
|
||||
|
||||
6
更新日志.md
6
更新日志.md
@@ -1,13 +1,17 @@
|
||||
|
||||
完整版本:年数-月-日-当日版本号,FreeSql、FreeSql.Repository、FreeSql.DbContext 版本号相同。
|
||||
|
||||
## v0.7.13
|
||||
|
||||
- 增加 ISelect.WhereCascade 实现多表查询时,向每个表中附加条件; [wiki](https://github.com/2881099/FreeSql/wiki/%e5%a4%9a%e8%a1%a8%e6%9f%a5%e8%af%a2#WhereCascade);
|
||||
- 增加 表达式对基类转换的解析,如:Where(a => (a as BaseEntity).IsDeleted == true);
|
||||
|
||||
## v0.7.12
|
||||
|
||||
- 修复 .From 多表查询别名的匹配 bug;
|
||||
- 修复 SqlServer 未处理字符串前面加N 的 bug;
|
||||
- 增加 子查询判断,如果使用了相同 ISelect 会死循环;
|
||||
- 增加 连接字符串错误时的友好提示;
|
||||
- 增加 表达式对基类转换的解析,如:Where(a => (a as BaseEntity).IsDeleted == true);
|
||||
|
||||
## v0.7.9
|
||||
|
||||
|
||||
1
查询.md
1
查询.md
@@ -44,6 +44,7 @@ FreeSql在查询数据下足了功能,链式查询语法、多表查询、表
|
||||
| WhereIf | \<this\> | bool, Lambda | 支持多表查询表达式 |
|
||||
| Where | \<this\> | string, parms | 原生sql语法条件,Where("id = ?id", new { id = 1 }) |
|
||||
| WhereIf | \<this\> | bool, string, parms | 原生sql语法条件,WhereIf(true, "id = ?id", new { id = 1 }) |
|
||||
| WhereCascade | \<this\> | Lambda | 实现多表查询时,向每个表中附加条件 |
|
||||
| 【分组】 |
|
||||
| GroupBy | \<this\> | Lambda | 按选择的列分组,GroupBy(a => a.Name) | GroupBy(a => new{a.Name,a.Time}) |
|
||||
| GroupBy | \<this\> | string, parms | 按原生sql语法分组,GroupBy("concat(name, ?cc)", new { cc = 1 }) |
|
||||
|
||||
Reference in New Issue
Block a user