This commit is contained in:
28810 2018-12-27 10:42:53 +08:00
parent 08e1babf0d
commit a18073ff8d

View File

@ -53,29 +53,19 @@ class TopicTypeClass {
# Part1: 查询 # Part1: 查询
```csharp ```csharp
List<Topic> t1 = fsql.Select<Topic>() List<Topic> t1 = fsql.Select<Topic>().Where(a => a.Id > 0).ToList();
.Where(a => a.Id > 0)
.ToList();
//返回普通字段 + 导航对象 Type 的数据 //返回普通字段 + 导航对象 Type 的数据
List<Topic> t2 = fsql.Select<Topic>() List<Topic> t2 = fsql.Select<Topic>().LeftJoin(a => a.Type.Id == a.TypeId).ToList();
.LeftJoin(a => a.Type.Id == a.TypeId)
.ToList();
//返回一个字段 //返回一个字段
List<int> t3 = fsql.Select<Topic>() List<int> t3 = fsql.Select<Topic>().Where(a => a.Id > 0).ToList(a => a.Id);
.Where(a => a.Id > 0)
.ToList(a => a.Id);
//返回匿名类型 //返回匿名类型
List<匿名类型> t4 = fsql.Select<Topic>() List<匿名类型> t4 = fsql.Select<Topic>().Where(a => a.Id > 0).ToList(a => new { a.Id, a.Title });
.Where(a => a.Id > 0)
.ToList(a => new { a.Id, a.Title });
//返回元组 //返回元组
List<(int, string)> t5 = fsql.Select<Topic>() List<(int, string)> t5 = fsql.Select<Topic>().Where(a => a.Id > 0).ToList<(int, string)>("id, title");
.Where(a => a.Id > 0)
.ToList<(int, string)>("id, title");
``` ```
### 联表之一:使用导航属性 ### 联表之一:使用导航属性
```csharp ```csharp
@ -117,31 +107,27 @@ sql = fsql.Select<Topic>()
# Part2: 添加 # Part2: 添加
```csharp ```csharp
var items = new List<Topic>(); var items = new List<Topic>();
for (var a = 0; a < 10; a++) items.Add(new Topic { Title = $"newtitle{a}", Clicks = a * 100 }); for (var a = 0; a < 10; a++)
items.Add(new Topic { Title = $"newtitle{a}", Clicks = a * 100 });
var t1 = fsql.Insert<Topic>().AppendData(items.First()).ToSql(); var t1 = fsql.Insert<Topic>().AppendData(items.First()).ToSql();
//INSERT INTO `tb_topic`(`Clicks`, `Title`, `CreateTime`) VALUES(?Clicks0, ?Title0, ?CreateTime0)
``` //批量插入
### 批量插入
```csharp
var t2 = fsql.Insert<Topic>().AppendData(items).ToSql(); var t2 = fsql.Insert<Topic>().AppendData(items).ToSql();
//INSERT INTO `tb_topic`(`Clicks`, `Title`, `CreateTime`) VALUES(?Clicks0, ?Title0, ?CreateTime0), (?Clicks1, ?Title1, ?CreateTime1), (?Clicks2, ?Title2, ?CreateTime2), (?Clicks3, ?Title3, ?CreateTime3), (?Clicks4, ?Title4, ?CreateTime4), (?Clicks5, ?Title5, ?CreateTime5), (?Clicks6, ?Title6, ?CreateTime6), (?Clicks7, ?Title7, ?CreateTime7), (?Clicks8, ?Title8, ?CreateTime8), (?Clicks9, ?Title9, ?CreateTime9)
```
### 插入指定的列
```csharp
var t3 = fsql.Insert<Topic>().AppendData(items).InsertColumns(a => a.Title).ToSql();
//INSERT INTO `tb_topic`(`Title`) VALUES(?Title0), (?Title1), (?Title2), (?Title3), (?Title4), (?Title5), (?Title6), (?Title7), (?Title8), (?Title9)
var t4 = fsql.Insert<Topic>().AppendData(items).InsertColumns(a => new { a.Title, a.Clicks }).ToSql(); //插入指定的列
//INSERT INTO `tb_topic`(`Clicks`, `Title`) VALUES(?Clicks0, ?Title0), (?Clicks1, ?Title1), (?Clicks2, ?Title2), (?Clicks3, ?Title3), (?Clicks4, ?Title4), (?Clicks5, ?Title5), (?Clicks6, ?Title6), (?Clicks7, ?Title7), (?Clicks8, ?Title8), (?Clicks9, ?Title9) var t3 = fsql.Insert<Topic>().AppendData(items)
``` .InsertColumns(a => a.Title).ToSql();
### 忽略列
```csharp
var t5 = fsql.Insert<Topic>().AppendData(items).IgnoreColumns(a => a.CreateTime).ToSql();
//INSERT INTO `tb_topic`(`Clicks`, `Title`) VALUES(?Clicks0, ?Title0), (?Clicks1, ?Title1), (?Clicks2, ?Title2), (?Clicks3, ?Title3), (?Clicks4, ?Title4), (?Clicks5, ?Title5), (?Clicks6, ?Title6), (?Clicks7, ?Title7), (?Clicks8, ?Title8), (?Clicks9, ?Title9)
var t6 = fsql.Insert<Topic>().AppendData(items).IgnoreColumns(a => new { a.Title, a.CreateTime }).ToSql(); var t4 = fsql.Insert<Topic>().AppendData(items)
///INSERT INTO `tb_topic`(`Clicks`) VALUES(?Clicks0), (?Clicks1), (?Clicks2), (?Clicks3), (?Clicks4), (?Clicks5), (?Clicks6), (?Clicks7), (?Clicks8), (?Clicks9) .InsertColumns(a => new { a.Title, a.Clicks }).ToSql();
//忽略列
var t5 = fsql.Insert<Topic>().AppendData(items)
.IgnoreColumns(a => a.CreateTime).ToSql();
var t6 = fsql.Insert<Topic>().AppendData(items)
.IgnoreColumns(a => new { a.Title, a.CreateTime }).ToSql();
``` ```
### 执行命令 ### 执行命令
| 方法 | 返回值 | 描述 | | 方法 | 返回值 | 描述 |
@ -151,24 +137,20 @@ var t6 = fsql.Insert<Topic>().AppendData(items).IgnoreColumns(a => new { a.Title
| ExecuteInserted | List\<Topic\> | 执行SQL语句返回插入后的记录 | | ExecuteInserted | List\<Topic\> | 执行SQL语句返回插入后的记录 |
# Part3: 修改 # Part3: 修改
### 更新指定列
```csharp ```csharp
var t1 = fsql.Update<Topic>(1).Set(a => a.CreateTime, DateTime.Now).ToSql(); var t1 = fsql.Update<Topic>(1).Set(a => a.CreateTime, DateTime.Now).ToSql();
//UPDATE `tb_topic` SET `CreateTime` = '2018-12-08 00:04:59' WHERE (`Id` = 1) //UPDATE `tb_topic` SET `CreateTime` = '2018-12-08 00:04:59' WHERE (`Id` = 1)
```
### 更新指定列,累加 //更新指定列,累加
```csharp
var t2 = fsql.Update<Topic>(1).Set(a => a.Clicks + 1).ToSql(); var t2 = fsql.Update<Topic>(1).Set(a => a.Clicks + 1).ToSql();
//UPDATE `tb_topic` SET `Clicks` = ifnull(`Clicks`,0) + 1 WHERE (`Id` = 1) //UPDATE `tb_topic` SET `Clicks` = ifnull(`Clicks`,0) + 1 WHERE (`Id` = 1)
```
### 保存实体 //保存实体
```csharp
var item = new Topic { Id = 1, Title = "newtitle" }; var item = new Topic { Id = 1, Title = "newtitle" };
var t3 = fsql.Update<Topic>().SetSource(item).ToSql(); var t3 = fsql.Update<Topic>().SetSource(item).ToSql();
//UPDATE `tb_topic` SET `Clicks` = ?p_0, `Title` = ?p_1, `CreateTime` = ?p_2 WHERE (`Id` = 1) //UPDATE `tb_topic` SET `Clicks` = ?p_0, `Title` = ?p_1, `CreateTime` = ?p_2 WHERE (`Id` = 1)
```
### 保存实体,忽略一些列 //忽略列
```csharp
var t4 = fsql.Update<Topic>().SetSource(item) var t4 = fsql.Update<Topic>().SetSource(item)
.IgnoreColumns(a => a.Clicks).ToSql(); .IgnoreColumns(a => a.Clicks).ToSql();
//UPDATE `tb_topic` SET `Title` = ?p_0, `CreateTime` = ?p_1 WHERE (`Id` = 1) //UPDATE `tb_topic` SET `Title` = ?p_0, `CreateTime` = ?p_1 WHERE (`Id` = 1)
@ -176,24 +158,31 @@ var t4 = fsql.Update<Topic>().SetSource(item)
var t5 = fsql.Update<Topic>().SetSource(item) var t5 = fsql.Update<Topic>().SetSource(item)
.IgnoreColumns(a => new { a.Clicks, a.CreateTime }).ToSql(); .IgnoreColumns(a => new { a.Clicks, a.CreateTime }).ToSql();
//UPDATE `tb_topic` SET `Title` = ?p_0 WHERE (`Id` = 1) //UPDATE `tb_topic` SET `Title` = ?p_0 WHERE (`Id` = 1)
```
### 批量保存 //批量保存
```csharp ```csharp
var items = new List<Topic>(); var items = new List<Topic>();
for (var a = 0; a < 10; a++) for (var a = 0; a < 10; a++)
items.Add(new Topic { Id = a + 1, Title = $"newtitle{a}", Clicks = a * 100 }); items.Add(new Topic { Id = a + 1, Title = $"newtitle{a}", Clicks = a * 100 });
var t6 = fsql.Update<Topic>().SetSource(items).ToSql(); var t6 = fsql.Update<Topic>().SetSource(items).ToSql();
//UPDATE `tb_topic` SET `Clicks` = CASE `Id` WHEN 1 THEN ?p_0 WHEN 2 THEN ?p_1 WHEN 3 THEN ?p_2 WHEN 4 THEN ?p_3 WHEN 5 THEN ?p_4 WHEN 6 THEN ?p_5 WHEN 7 THEN ?p_6 WHEN 8 THEN ?p_7 WHEN 9 THEN ?p_8 WHEN 10 THEN ?p_9 END, `Title` = CASE `Id` WHEN 1 THEN ?p_10 WHEN 2 THEN ?p_11 WHEN 3 THEN ?p_12 WHEN 4 THEN ?p_13 WHEN 5 THEN ?p_14 WHEN 6 THEN ?p_15 WHEN 7 THEN ?p_16 WHEN 8 THEN ?p_17 WHEN 9 THEN ?p_18 WHEN 10 THEN ?p_19 END, `CreateTime` = CASE `Id` WHEN 1 THEN ?p_20 WHEN 2 THEN ?p_21 WHEN 3 THEN ?p_22 WHEN 4 THEN ?p_23 WHEN 5 THEN ?p_24 WHEN 6 THEN ?p_25 WHEN 7 THEN ?p_26 WHEN 8 THEN ?p_27 WHEN 9 THEN ?p_28 WHEN 10 THEN ?p_29 END WHERE (`Id` IN (1,2,3,4,5,6,7,8,9,10)) //UPDATE `tb_topic` SET `Clicks` = CASE `Id` WHEN 1 THEN ?p_0 WHEN 2 THEN ?p_1
``` //WHEN 3 THEN ?p_2 WHEN 4 THEN ?p_3 WHEN 5 THEN ?p_4 WHEN 6 THEN ?p_5 WHEN 7 THEN ?p_6
### 批量保存,忽略一些列 //WHEN 8 THEN ?p_7 WHEN 9 THEN ?p_8 WHEN 10 THEN ?p_9 END, `Title` = CASE `Id`
```csharp //WHEN 1 THEN ?p_10 WHEN 2 THEN ?p_11 WHEN 3 THEN ?p_12 WHEN 4 THEN ?p_13 WHEN 5 THEN ?p_14
//WHEN 6 THEN ?p_15 WHEN 7 THEN ?p_16 WHEN 8 THEN ?p_17 WHEN 9 THEN ?p_18 WHEN 10 THEN ?p_19 END,
//`CreateTime` = CASE `Id` WHEN 1 THEN ?p_20 WHEN 2 THEN ?p_21 WHEN 3 THEN ?p_22 WHEN 4 THEN ?p_23
//WHEN 5 THEN ?p_24 WHEN 6 THEN ?p_25 WHEN 7 THEN ?p_26 WHEN 8 THEN ?p_27 WHEN 9 THEN ?p_28
//WHEN 10 THEN ?p_29 END WHERE (`Id` IN (1,2,3,4,5,6,7,8,9,10))
//批量保存的时候,也可以忽略一些列
var t7 = fsql.Update<Topic>().SetSource(items) var t7 = fsql.Update<Topic>().SetSource(items)
.IgnoreColumns(a => new { a.Clicks, a.CreateTime }).ToSql(); .IgnoreColumns(a => new { a.Clicks, a.CreateTime }).ToSql();
//UPDATE `tb_topic` SET `Title` = CASE `Id` WHEN 1 THEN ?p_0 WHEN 2 THEN ?p_1 WHEN 3 THEN ?p_2 WHEN 4 THEN ?p_3 WHEN 5 THEN ?p_4 WHEN 6 THEN ?p_5 WHEN 7 THEN ?p_6 WHEN 8 THEN ?p_7 WHEN 9 THEN ?p_8 WHEN 10 THEN ?p_9 END WHERE (`Id` IN (1,2,3,4,5,6,7,8,9,10)) //UPDATE `tb_topic` SET `Title` = CASE `Id` WHEN 1 THEN ?p_0 WHEN 2 THEN ?p_1 WHEN 3 THEN ?p_2
``` //WHEN 4 THEN ?p_3 WHEN 5 THEN ?p_4 WHEN 6 THEN ?p_5 WHEN 7 THEN ?p_6 WHEN 8 THEN ?p_7 WHEN 9
### 批量更新指定列 //THEN ?p_8 WHEN 10 THEN ?p_9 END WHERE (`Id` IN (1,2,3,4,5,6,7,8,9,10))
```csharp
//批量更新指定列
var t8 = fsql.Update<Topic>().SetSource(items).Set(a => a.CreateTime, DateTime.Now).ToSql(); var t8 = fsql.Update<Topic>().SetSource(items).Set(a => a.CreateTime, DateTime.Now).ToSql();
//UPDATE `tb_topic` SET `CreateTime` = ?p_0 WHERE (`Id` IN (1,2,3,4,5,6,7,8,9,10)) //UPDATE `tb_topic` SET `CreateTime` = ?p_0 WHERE (`Id` IN (1,2,3,4,5,6,7,8,9,10))
``` ```