update

2881099
2023-10-11 19:03:57 +08:00
parent 2d2f3b5b4d
commit 43bd4b3f7b
2 changed files with 106 additions and 98 deletions

@@ -5,30 +5,24 @@
Define entity class: Define entity class:
```csharp ```csharp
public class TestClass public class TestClass
{ {
[Column(Name = "ID", IsPrimary = true)] [Column(Name = "ID", IsPrimary = true)]
public string No { get; set; } public string No { get; set; }
public int? Age { get; set; } public int? Age { get; set; }
public string Name { get; set; } public string Name { get; set; }
[Column(Name = "BIRTH_DAY")] [Column(Name = "BIRTH_DAY")]
public DateTime? Birthday { get; set; } public DateTime? Birthday { get; set; }
public decimal Point { get; set; } public decimal Point { get; set; }
public Sex? Sex { get; set; } public Sex? Sex { get; set; }
} }
public enum Sex public enum Sex { Boy, Girl }
{ public class TestClssDto
Boy, {
Girl public string ID { get; set; }
} public int? Age { get; set; }
public class TestClssDto public DateTime? Birthday { get; set; }
{ }
public string ID { get; set; }
public int? Age { get; set; }
public DateTime? Birthday { get; set; }
}
``` ```
Different query results: Different query results:
@@ -43,25 +37,30 @@ Different query results:
```csharp ```csharp
DataTable dt1 = _fsql.Select<object>() DataTable dt1 = _fsql.Select<object>()
.WithSql("select * from TestClass ") .WithSql("select * from TestClass")
.ToDataTable("ID,Age"); .Where(...)
.ToDataTable("ID, Age");
``` ```
```sql ```sql
SELECT ID,Age SELECT ID, Age
FROM(select * from TestClass ) a FROM ( select * from TestClass ) a
WHERE ...
``` ```
### Return to DataTable with all columns ### Return to DataTable with all columns
```csharp ```csharp
DataTable dt2 = _fsql.Select<object>() DataTable dt2 = _fsql.Select<object>()
.WithSql("select * from TestClass ") .WithSql("select * from TestClass")
.Where(...)
.ToDataTable("*"); .ToDataTable("*");
``` ```
```sql ```sql
SELECT * SELECT *
FROM ( select * from TestClass ) a FROM ( select * from TestClass ) a
WHERE ...
``` ```
### Return List\<Tuple\> (i.e. List\<(string, string)\>) ### Return List\<Tuple\> (i.e. List\<(string, string)\>)
@@ -69,13 +68,15 @@ FROM ( select * from TestClass ) a
```csharp ```csharp
List<(string,string)> list1 = _fsql List<(string,string)> list1 = _fsql
.Select<object>() .Select<object>()
.WithSql("select * from TestClass ") .WithSql("select * from TestClass")
.ToList<(string, string)>("ID,Age"); .Where(...)
.ToList<(string, string)>("ID, Age");
``` ```
```sql ```sql
SELECT ID, Age SELECT ID, Age
FROM(select * from TestClass ) a FROM ( select * from TestClass ) a
WHERE ...
``` ```
### Return List\<object\> ### Return List\<object\>
@@ -83,28 +84,32 @@ SELECT ID, Age
```csharp ```csharp
var list2 = _fsql.Select<object>() var list2 = _fsql.Select<object>()
.WithSql("select * from TestClass ") .WithSql("select * from TestClass ")
.Where(...)
.ToList<object>("*"); .ToList<object>("*");
``` ```
```sql ```sql
SELECT * SELECT *
FROM(select * from TestClass ) a FROM ( select * from TestClass ) a
WHERE ...
``` ```
### Return List\<object\> and support paging ### Return List\<object\> and support paging
```csharp ```csharp
var list3 = _fsql.Select<object>() var list3 = _fsql.Select<object>()
.WithSql("select * from TestClass ") .WithSql("select * from TestClass ")
.WhereIf(true, "1=1") .WhereIf(true, "1=1")
.Page(1, 10).OrderBy("ID DESC") .Page(1, 10).OrderBy("ID DESC")
.ToList<object>("ID,Age"); .ToList<object>("ID,Age");
``` ```
```sql ```sql
SELECT ID, Age SELECT ID, Age
FROM(select * from TestClass ) a FROM ( select * from TestClass ) a
WHERE(1 = 1) WHERE (1 = 1)
ORDER BY ID DESC ORDER BY ID DESC
limit 0,10 limit 0,10
``` ```
### Return List\<TestClassDto\> and support paging ### Return List\<TestClassDto\> and support paging
@@ -119,15 +124,14 @@ var list4 = _fsql.Select<object>()
``` ```
```sql ```sql
SELECT ID, Age,BIRTH_DAY as Birthday SELECT ID,Age,BIRTH_DAY as Birthday
FROM(select * from TestClass ) a FROM ( select * from TestClass ) a
WHERE(1 = 1) WHERE (1 = 1)
ORDER BY ID DESC ORDER BY ID DESC
limit 0,10 limit 0,10
``` ```
## WithSql + ToSQL = Union ALL
## WithSql+ ToSQL = Union ALL
> v3.2.666 [UnionAll Query](%E8%81%94%E5%90%88%E6%9F%A5%E8%AF%A2) > v3.2.666 [UnionAll Query](%E8%81%94%E5%90%88%E6%9F%A5%E8%AF%A2)

@@ -1,66 +1,65 @@
**中文** | [English](With-Sql) **中文** | [English](With-Sql)
# WithSql 自定义SQL ## WithSql 自定义 SQL
定义实体类 定义实体类
```csharp ```csharp
public class TestClass public class TestClass
{ {
[Column(Name = "ID", IsPrimary = true)] [Column(Name = "ID", IsPrimary = true)]
public string No { get; set; } public string No { get; set; }
public int? Age { get; set; } public int? Age { get; set; }
public string Name { get; set; } public string Name { get; set; }
[Column(Name = "BIRTH_DAY")] [Column(Name = "BIRTH_DAY")]
public DateTime? Birthday { get; set; } public DateTime? Birthday { get; set; }
public decimal Point { get; set; } public decimal Point { get; set; }
public Sex? Sex { get; set; } public Sex? Sex { get; set; }
} }
public enum Sex public enum Sex { Boy, Girl }
{ public class TestClssDto
Boy, {
Girl public string ID { get; set; }
} public int? Age { get; set; }
public class TestClssDto public DateTime? Birthday { get; set; }
{ }
public string ID { get; set; }
public int? Age { get; set; }
public DateTime? Birthday { get; set; }
}
``` ```
不同的查询方式。 不同的查询方式。
- 返回`DataTable` - 返回`DataTable`
- 返回`List<Tuplue>``List<(string,string)>`元组 - 返回`List<Tuplue>``List<(string,string)>`元组
- 返回`List<object>` 且能支持分页 - 返回`List<object>` 且能支持分页
- 返回`List<TestClassDto>`且能支持分页 - 返回`List<TestClassDto>`且能支持分页
> v3.2.666 [WithTempQuery + FromQuery Nested Query](%e5%b5%8c%e5%a5%97%e6%9f%a5%e8%af%a2) ### 1.返回 DataTable
### 1.返回DataTable
```csharp ```csharp
DataTable dt1 = _fsql.Select<object>() DataTable dt1 = _fsql.Select<object>()
.WithSql("select * from TestClass ") .WithSql("select * from TestClass")
.ToDataTable("ID,Age"); .Where(...)
.ToDataTable("ID, Age");
``` ```
```sql ```sql
SELECT ID,Age SELECT ID, Age
FROM(select * from TestClass ) a FROM ( select * from TestClass ) a
WHERE ...
``` ```
### 2.返回DataTable ### 2.返回 DataTable
```csharp ```csharp
DataTable dt2 = _fsql.Select<object>() DataTable dt2 = _fsql.Select<object>()
.WithSql("select * from TestClass ") .WithSql("select * from TestClass")
.Where(...)
.ToDataTable("*"); .ToDataTable("*");
``` ```
```sql ```sql
SELECT * SELECT *
FROM ( select * from TestClass ) a FROM ( select * from TestClass ) a
WHERE ...
``` ```
### 3.返回`List<Tuplue>` 即`List<(string,string)>` 元组 ### 3.返回`List<Tuplue>` 即`List<(string,string)>` 元组
@@ -68,13 +67,15 @@ FROM ( select * from TestClass ) a
```csharp ```csharp
List<(string,string)> list1 = _fsql List<(string,string)> list1 = _fsql
.Select<object>() .Select<object>()
.WithSql("select * from TestClass ") .WithSql("select * from TestClass")
.ToList<(string, string)>("ID,Age"); .Where(...)
.ToList<(string, string)>("ID, Age");
``` ```
```sql ```sql
SELECT ID, Age SELECT ID, Age
FROM(select * from TestClass ) a FROM ( select * from TestClass ) a
WHERE ...
``` ```
### 4.返回`List<object>` ### 4.返回`List<object>`
@@ -82,28 +83,32 @@ SELECT ID, Age
```csharp ```csharp
var list2 = _fsql.Select<object>() var list2 = _fsql.Select<object>()
.WithSql("select * from TestClass ") .WithSql("select * from TestClass ")
.Where(...)
.ToList<object>("*"); .ToList<object>("*");
``` ```
```sql ```sql
SELECT * SELECT *
FROM(select * from TestClass ) a FROM ( select * from TestClass ) a
WHERE ...
``` ```
### 5.返回`List<object>` 且能支持分页 ### 5.返回`List<object>` 且能支持分页
```csharp ```csharp
var list3 = _fsql.Select<object>() var list3 = _fsql.Select<object>()
.WithSql("select * from TestClass ") .WithSql("select * from TestClass ")
.WhereIf(true, "1=1") .WhereIf(true, "1=1")
.Page(1, 10).OrderBy("ID DESC") .Page(1, 10).OrderBy("ID DESC")
.ToList<object>("ID,Age"); .ToList<object>("ID,Age");
``` ```
```sql ```sql
SELECT ID, Age SELECT ID, Age
FROM(select * from TestClass ) a FROM ( select * from TestClass ) a
WHERE(1 = 1) WHERE (1 = 1)
ORDER BY ID DESC ORDER BY ID DESC
limit 0,10 limit 0,10
``` ```
### 6.返回`List<TestClassDto>`且能支持分页 ### 6.返回`List<TestClassDto>`且能支持分页
@@ -119,14 +124,13 @@ var list4 = _fsql.Select<object>()
```sql ```sql
SELECT ID,Age,BIRTH_DAY as Birthday SELECT ID,Age,BIRTH_DAY as Birthday
FROM(select * from TestClass ) a FROM ( select * from TestClass ) a
WHERE(1 = 1) WHERE (1 = 1)
ORDER BY ID DESC ORDER BY ID DESC
limit 0,10 limit 0,10
``` ```
## 通过 WithSql + ToSQL实现 Union ALL 查询方法
## 通过 WithSql+ ToSQL实现 Union ALL 查询方法
> v3.2.666 [UnionAll 联合查询](%E8%81%94%E5%90%88%E6%9F%A5%E8%AF%A2) > v3.2.666 [UnionAll 联合查询](%E8%81%94%E5%90%88%E6%9F%A5%E8%AF%A2)