update

2881099
2022-05-23 12:10:45 +08:00
parent ec9785d9e5
commit 0c83b981d9
2 changed files with 43 additions and 21 deletions

@@ -22,7 +22,7 @@ if (xxx)
## In查询
```csharp
var t1 = fsql.Select<T>()
fsql.Select<T>()
.Where(a => new[] { 1, 2, 3 }.Contains(a.Id))
.ToList();
//SELECT .. FROM ..
@@ -58,40 +58,38 @@ var t2 = fsql.Select<T>()
## In子表
```csharp
var list2 = fsql.Select<T>()
.Where(a => fsql.Select<T>()
.ToList(b => b.Id)
.Contains(a.Id))
fsql.Select<Topic>()
.Where(a => fsql.Select<Topic>().As("b").ToList(b => b.Id).Contains(a.Id))
.ToList();
// SELECT a.`Id`, a.`Clicks`, a.`TypeGuid`, a.`Title`, a.`CreateTime`
// FROM `tb_topic` a
// WHERE (((cast(a.`Id` as char)) in (SELECT b.`Title`
// FROM `tb_topic` b)))
//SELECT a.`Id`, a.`Title`, a.`Clicks`, a.`CreateTime`, a.`CategoryId`
//FROM `Topic` a
//WHERE (((a.`Id`) in (SELECT b.`Id`
// FROM `Topic` b)))
```
## Exists子表
```csharp
var list2 = fsql.Select<T>()
.Where(a => fsql.Select<T>()
.Any(b => b.Id == a.Id))
fsql.Select<Topic>()
.Where(a => fsql.Select<Topic>().As("b").Where(b => b.Id == a.Id).Any())
.ToList();
// SELECT a.`Id`, a.`TypeGuid`, a.`Title`, a.`CreateTime`
// FROM `xxx` a
// WHERE (exists(SELECT 1
// FROM `xxx` b
// WHERE (b.`Id` = a.`Id`)))
//SELECT a.`Id`, a.`Title`, a.`Clicks`, a.`CreateTime`, a.`CategoryId`
//FROM `Topic` a
//WHERE (exists(SELECT 1
// FROM `Topic` b
// WHERE (b.`Id` = a.`Id`)
// limit 0,1))
```
## 查找今天创建的数据
```csharp
var t3 = fsql.Select<T>()
fsql.Select<T>()
.Where(a => a.CreateTime.Date == DateTime.Today)
.ToList();
//这行代码说明 FreeSql 表达式解析强大,不是所有 ORM 都支持
var t4 = fsql.Select<T>()
fsql.Select<T>()
.Where(a => a.CreateTime.Between(DateTime.Today, DateTime.Today.AddDays(1)))
.ToList();
//正常用法应该是这样
@@ -102,7 +100,7 @@ var t4 = fsql.Select<T>()
## 日期格式化
```csharp
var t4 = fsql.Select<T>()
fsql.Select<T>()
.First(a => a.CreateTime.ToString("HH:mm:ss");
// SELECT date_format(a.`CreateTime`, '%H:%i:%s') as1
// FROM `xxx` a
@@ -128,6 +126,30 @@ fsql.Select<T1, T2>()
> v1.6.0 利用自定义解析功能,增加 SqlExt.Rank().Over().PartitionBy(...)、MySql group_concat 常用函数,欢迎 PR 补充
## 返回子查询字段
```csharp
List<匿名类> t10 = fsql.Select<Topic>().ToList(a => new {
a.Id,
count = fsql.Select<T2>().Count(),
max = fsql.Select<T2>().Max(b => b.Id),
min = fsql.Select<T2>().Min(b => b.Id),
name = fsql.Select<2>().First(b => b.name)
});
```
## 返回子查询集合
> v3.2.650+ 以下最多执行3次 SQL
```csharp
List<匿名类> t11 = fsql.Select<Topic>().ToList(a => new {
a.Id,
list1 = fsql.Select<T2>().ToList(),
list2 = fsql.Select<T2>().Where(b => b.TopicId == a.Id).ToList()
});
```
## 自定义解析
```csharp

@@ -61,7 +61,7 @@ List<匿名类> t10 = fsql.Select<Topic>().ToList(a => new {
name = fsql.Select<2>().First(b => b.name)
});
//返回子查询集合 v3.2.650+
//返回子查询集合 v3.2.650+ 以下最多执行3次 SQL
List<匿名类> t11 = fsql.Select<Topic>().ToList(a => new {
a.Id,
list1 = fsql.Select<T2>().ToList(),