mirror of
https://github.com/dotnetcore/FreeSql.git
synced 2026-02-06 16:30:52 +08:00
update
98
With-Sql.md
98
With-Sql.md
@@ -5,30 +5,24 @@
|
||||
Define entity class:
|
||||
|
||||
```csharp
|
||||
public class TestClass
|
||||
{
|
||||
[Column(Name = "ID", IsPrimary = true)]
|
||||
public string No { get; set; }
|
||||
public int? Age { get; set; }
|
||||
public string Name { get; set; }
|
||||
[Column(Name = "BIRTH_DAY")]
|
||||
public DateTime? Birthday { get; set; }
|
||||
public decimal Point { get; set; }
|
||||
public Sex? Sex { get; set; }
|
||||
}
|
||||
public enum Sex
|
||||
{
|
||||
Boy,
|
||||
Girl
|
||||
}
|
||||
public class TestClssDto
|
||||
{
|
||||
public string ID { get; set; }
|
||||
|
||||
public int? Age { get; set; }
|
||||
|
||||
public DateTime? Birthday { get; set; }
|
||||
}
|
||||
public class TestClass
|
||||
{
|
||||
[Column(Name = "ID", IsPrimary = true)]
|
||||
public string No { get; set; }
|
||||
public int? Age { get; set; }
|
||||
public string Name { get; set; }
|
||||
[Column(Name = "BIRTH_DAY")]
|
||||
public DateTime? Birthday { get; set; }
|
||||
public decimal Point { get; set; }
|
||||
public Sex? Sex { get; set; }
|
||||
}
|
||||
public enum Sex { Boy, Girl }
|
||||
public class TestClssDto
|
||||
{
|
||||
public string ID { get; set; }
|
||||
public int? Age { get; set; }
|
||||
public DateTime? Birthday { get; set; }
|
||||
}
|
||||
```
|
||||
|
||||
Different query results:
|
||||
@@ -43,25 +37,30 @@ Different query results:
|
||||
|
||||
```csharp
|
||||
DataTable dt1 = _fsql.Select<object>()
|
||||
.WithSql("select * from TestClass ")
|
||||
.ToDataTable("ID,Age");
|
||||
.WithSql("select * from TestClass")
|
||||
.Where(...)
|
||||
.ToDataTable("ID, Age");
|
||||
```
|
||||
|
||||
```sql
|
||||
SELECT ID,Age
|
||||
FROM(select * from TestClass ) a
|
||||
SELECT ID, Age
|
||||
FROM ( select * from TestClass ) a
|
||||
WHERE ...
|
||||
```
|
||||
|
||||
### Return to DataTable with all columns
|
||||
|
||||
```csharp
|
||||
DataTable dt2 = _fsql.Select<object>()
|
||||
.WithSql("select * from TestClass ")
|
||||
.WithSql("select * from TestClass")
|
||||
.Where(...)
|
||||
.ToDataTable("*");
|
||||
```
|
||||
|
||||
```sql
|
||||
SELECT *
|
||||
FROM ( select * from TestClass ) a
|
||||
SELECT *
|
||||
FROM ( select * from TestClass ) a
|
||||
WHERE ...
|
||||
```
|
||||
|
||||
### Return List\<Tuple\> (i.e. List\<(string, string)\>)
|
||||
@@ -69,13 +68,15 @@ FROM ( select * from TestClass ) a
|
||||
```csharp
|
||||
List<(string,string)> list1 = _fsql
|
||||
.Select<object>()
|
||||
.WithSql("select * from TestClass ")
|
||||
.ToList<(string, string)>("ID,Age");
|
||||
.WithSql("select * from TestClass")
|
||||
.Where(...)
|
||||
.ToList<(string, string)>("ID, Age");
|
||||
```
|
||||
|
||||
```sql
|
||||
SELECT ID, Age
|
||||
FROM(select * from TestClass ) a
|
||||
FROM ( select * from TestClass ) a
|
||||
WHERE ...
|
||||
```
|
||||
|
||||
### Return List\<object\>
|
||||
@@ -83,28 +84,32 @@ SELECT ID, Age
|
||||
```csharp
|
||||
var list2 = _fsql.Select<object>()
|
||||
.WithSql("select * from TestClass ")
|
||||
.Where(...)
|
||||
.ToList<object>("*");
|
||||
```
|
||||
|
||||
```sql
|
||||
SELECT *
|
||||
FROM(select * from TestClass ) a
|
||||
FROM ( select * from TestClass ) a
|
||||
WHERE ...
|
||||
```
|
||||
|
||||
### Return List\<object\> and support paging
|
||||
|
||||
```csharp
|
||||
var list3 = _fsql.Select<object>()
|
||||
var list3 = _fsql.Select<object>()
|
||||
.WithSql("select * from TestClass ")
|
||||
.WhereIf(true, "1=1")
|
||||
.Page(1, 10).OrderBy("ID DESC")
|
||||
.ToList<object>("ID,Age");
|
||||
```
|
||||
|
||||
```sql
|
||||
SELECT ID, Age
|
||||
FROM(select * from TestClass ) a
|
||||
WHERE(1 = 1)
|
||||
ORDER BY ID DESC
|
||||
limit 0,10
|
||||
FROM ( select * from TestClass ) a
|
||||
WHERE (1 = 1)
|
||||
ORDER BY ID DESC
|
||||
limit 0,10
|
||||
```
|
||||
|
||||
### Return List\<TestClassDto\> and support paging
|
||||
@@ -119,15 +124,14 @@ var list4 = _fsql.Select<object>()
|
||||
```
|
||||
|
||||
```sql
|
||||
SELECT ID, Age,BIRTH_DAY as Birthday
|
||||
FROM(select * from TestClass ) a
|
||||
WHERE(1 = 1)
|
||||
ORDER BY ID DESC
|
||||
limit 0,10
|
||||
SELECT ID,Age,BIRTH_DAY as Birthday
|
||||
FROM ( select * from TestClass ) a
|
||||
WHERE (1 = 1)
|
||||
ORDER BY ID DESC
|
||||
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)
|
||||
|
||||
|
||||
106
withsql.md
106
withsql.md
@@ -1,66 +1,65 @@
|
||||
**中文** | [English](With-Sql)
|
||||
|
||||
# WithSql 自定义SQL
|
||||
## WithSql 自定义 SQL
|
||||
|
||||
定义实体类
|
||||
|
||||
```csharp
|
||||
public class TestClass
|
||||
{
|
||||
[Column(Name = "ID", IsPrimary = true)]
|
||||
public string No { get; set; }
|
||||
public int? Age { get; set; }
|
||||
public string Name { get; set; }
|
||||
[Column(Name = "BIRTH_DAY")]
|
||||
public DateTime? Birthday { get; set; }
|
||||
public decimal Point { get; set; }
|
||||
public Sex? Sex { get; set; }
|
||||
}
|
||||
public enum Sex
|
||||
{
|
||||
Boy,
|
||||
Girl
|
||||
}
|
||||
public class TestClssDto
|
||||
{
|
||||
public string ID { get; set; }
|
||||
|
||||
public int? Age { get; set; }
|
||||
|
||||
public DateTime? Birthday { get; set; }
|
||||
}
|
||||
public class TestClass
|
||||
{
|
||||
[Column(Name = "ID", IsPrimary = true)]
|
||||
public string No { get; set; }
|
||||
public int? Age { get; set; }
|
||||
public string Name { get; set; }
|
||||
[Column(Name = "BIRTH_DAY")]
|
||||
public DateTime? Birthday { get; set; }
|
||||
public decimal Point { get; set; }
|
||||
public Sex? Sex { get; set; }
|
||||
}
|
||||
public enum Sex { Boy, Girl }
|
||||
public class TestClssDto
|
||||
{
|
||||
public string ID { get; set; }
|
||||
public int? Age { get; set; }
|
||||
public DateTime? Birthday { get; set; }
|
||||
}
|
||||
```
|
||||
|
||||
不同的查询方式。
|
||||
|
||||
- 返回`DataTable`
|
||||
- 返回`List<Tuplue>` 即`List<(string,string)>`元组
|
||||
- 返回`List<object>` 且能支持分页
|
||||
- 返回`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
|
||||
DataTable dt1 = _fsql.Select<object>()
|
||||
.WithSql("select * from TestClass ")
|
||||
.ToDataTable("ID,Age");
|
||||
.WithSql("select * from TestClass")
|
||||
.Where(...)
|
||||
.ToDataTable("ID, Age");
|
||||
```
|
||||
|
||||
```sql
|
||||
SELECT ID,Age
|
||||
FROM(select * from TestClass ) a
|
||||
SELECT ID, Age
|
||||
FROM ( select * from TestClass ) a
|
||||
WHERE ...
|
||||
```
|
||||
|
||||
### 2.返回DataTable
|
||||
### 2.返回 DataTable
|
||||
|
||||
```csharp
|
||||
DataTable dt2 = _fsql.Select<object>()
|
||||
.WithSql("select * from TestClass ")
|
||||
.WithSql("select * from TestClass")
|
||||
.Where(...)
|
||||
.ToDataTable("*");
|
||||
```
|
||||
|
||||
```sql
|
||||
SELECT *
|
||||
FROM ( select * from TestClass ) a
|
||||
SELECT *
|
||||
FROM ( select * from TestClass ) a
|
||||
WHERE ...
|
||||
```
|
||||
|
||||
### 3.返回`List<Tuplue>` 即`List<(string,string)>` 元组
|
||||
@@ -68,13 +67,15 @@ FROM ( select * from TestClass ) a
|
||||
```csharp
|
||||
List<(string,string)> list1 = _fsql
|
||||
.Select<object>()
|
||||
.WithSql("select * from TestClass ")
|
||||
.ToList<(string, string)>("ID,Age");
|
||||
.WithSql("select * from TestClass")
|
||||
.Where(...)
|
||||
.ToList<(string, string)>("ID, Age");
|
||||
```
|
||||
|
||||
```sql
|
||||
SELECT ID, Age
|
||||
FROM(select * from TestClass ) a
|
||||
FROM ( select * from TestClass ) a
|
||||
WHERE ...
|
||||
```
|
||||
|
||||
### 4.返回`List<object>`
|
||||
@@ -82,28 +83,32 @@ SELECT ID, Age
|
||||
```csharp
|
||||
var list2 = _fsql.Select<object>()
|
||||
.WithSql("select * from TestClass ")
|
||||
.Where(...)
|
||||
.ToList<object>("*");
|
||||
```
|
||||
|
||||
```sql
|
||||
SELECT *
|
||||
FROM(select * from TestClass ) a
|
||||
FROM ( select * from TestClass ) a
|
||||
WHERE ...
|
||||
```
|
||||
|
||||
### 5.返回`List<object>` 且能支持分页
|
||||
|
||||
```csharp
|
||||
var list3 = _fsql.Select<object>()
|
||||
var list3 = _fsql.Select<object>()
|
||||
.WithSql("select * from TestClass ")
|
||||
.WhereIf(true, "1=1")
|
||||
.Page(1, 10).OrderBy("ID DESC")
|
||||
.ToList<object>("ID,Age");
|
||||
```
|
||||
|
||||
```sql
|
||||
SELECT ID, Age
|
||||
FROM(select * from TestClass ) a
|
||||
WHERE(1 = 1)
|
||||
ORDER BY ID DESC
|
||||
limit 0,10
|
||||
FROM ( select * from TestClass ) a
|
||||
WHERE (1 = 1)
|
||||
ORDER BY ID DESC
|
||||
limit 0,10
|
||||
```
|
||||
|
||||
### 6.返回`List<TestClassDto>`且能支持分页
|
||||
@@ -119,14 +124,13 @@ var list4 = _fsql.Select<object>()
|
||||
|
||||
```sql
|
||||
SELECT ID,Age,BIRTH_DAY as Birthday
|
||||
FROM(select * from TestClass ) a
|
||||
WHERE(1 = 1)
|
||||
ORDER BY ID DESC
|
||||
limit 0,10
|
||||
FROM ( select * from TestClass ) a
|
||||
WHERE (1 = 1)
|
||||
ORDER BY ID DESC
|
||||
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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user