mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-04-21 18:22:51 +08:00
88 lines
3.8 KiB
Markdown
88 lines
3.8 KiB
Markdown
# FreeSql
|
|
|
|
* [Insert 插入数据](Docs/insert.md)
|
|
* [Update 更新数据](Docs/update.md)
|
|
* [Delete 删除数据](Docs/delete.md)
|
|
* [Select 查询数据](Docs/select.md)
|
|
|
|
* [CodeFirst 快速开发](Docs/codefirst.md)
|
|
* [DbFirst 快速开发](Docs/dbfirst.md)
|
|
* [DbFirst 生成器](Docs/generator.md)
|
|
|
|
# 查询数据
|
|
|
|
### 返回 List
|
|
```csharp
|
|
List<Topic> t1 = select.Where(a => a.Id > 0).Skip(100).Limit(200).ToList();
|
|
```
|
|
|
|
### 返回 List + 导航属性的数据
|
|
```csharp
|
|
List<Topic> t5 = select.LeftJoin<TestTypeInfo>((a, b) => a.TypeGuid == b.Guid && b.Name == "111").ToList();
|
|
//此时会返回普通字段 + 导航对象 Type 的数据
|
|
```
|
|
|
|
### 指定字段返回
|
|
```csharp
|
|
//返回一个字段
|
|
List<int> t2 = select.Where(a => a.Id > 0).Skip(100).Limit(200).ToList(a => a.Id);
|
|
|
|
//返回匿名类
|
|
List<匿名类> t3 = select.Where(a => a.Id > 0).Skip(100).Limit(200).ToList(a => new { a.Id, a.Title });
|
|
|
|
//返回元组
|
|
List<(int, string)> t4 = select.Where(a => a.Id > 0).Skip(100).Limit(200).ToList<(int, string)>("id, title");
|
|
```
|
|
|
|
### 执行SQL返回数据
|
|
```csharp
|
|
class xxx {
|
|
public int Id { get; set; }
|
|
public string Path { get; set; }
|
|
public string Title2 { get; set; }
|
|
}
|
|
|
|
List<xxx> t3 = fsql.Ado.Query<xxx>("select * from song");
|
|
List<(int, string ,string)> t4 = fsql.Ado.Query<(int, string, string)>("select * from song");
|
|
List<dynamic> t5 = fsql.Ado.Query<dynamic>("select * from song");
|
|
```
|
|
|
|
# 联表
|
|
|
|
### 使用导航属性联表
|
|
```csharp
|
|
sql = select.LeftJoin(a => a.Type.Guid == a.TestTypeInfoGuid).ToSql();
|
|
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TestTypeInfoGuid` as3, a__Type.`Guid` as4, a__Type.`ParentId` as5, a__Type.`Name` as6, a.`Title` as7, a.`CreateTime` as8 FROM `tb_topic` a LEFT JOIN `TestTypeInfo` a__Type ON a__Type.`Guid` = a.`TestTypeInfoGuid`
|
|
|
|
sql = select
|
|
.LeftJoin(a => a.Type.Guid == a.TestTypeInfoGuid)
|
|
.LeftJoin(a => a.Type.Parent.Id == a.Type.ParentId).ToSql();
|
|
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TestTypeInfoGuid` as3, a__Type.`Guid` as4, a__Type.`ParentId` as5, a__Type.`Name` as6, a.`Title` as7, a.`CreateTime` as8 FROM `tb_topic` a LEFT JOIN `TestTypeInfo` a__Type ON a__Type.`Guid` = a.`TestTypeInfoGuid` LEFT JOIN `TestTypeParentInfo` a__Type__Parent ON a__Type__Parent.`Id` = a__Type.`ParentId`
|
|
```
|
|
|
|
### 没有导航属性联表
|
|
```csharp
|
|
sql = select.LeftJoin<TestTypeInfo>((a, b) => b.Guid == a.TestTypeInfoGuid).ToSql();
|
|
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TestTypeInfoGuid` as3, b.`Guid` as4, b.`ParentId` as5, b.`Name` as6, a.`Title` as7, a.`CreateTime` as8 FROM `tb_topic` a LEFT JOIN `TestTypeInfo` b ON b.`Guid` = a.`TestTypeInfoGuid`
|
|
|
|
sql = select
|
|
.LeftJoin<TestTypeInfo>((a, b) => b.Guid == a.TestTypeInfoGuid)
|
|
.LeftJoin<TestTypeParentInfo>((a, c) => c.Id == a.Type.ParentId).ToSql();
|
|
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TestTypeInfoGuid` as3, b.`Guid` as4, b.`ParentId` as5, b.`Name` as6, a.`Title` as7, a.`CreateTime` as8 FROM `tb_topic` a LEFT JOIN `TestTypeInfo` b ON b.`Guid` = a.`TestTypeInfoGuid` LEFT JOIN `TestTypeParentInfo` c ON c.`Id` = b.`ParentId`
|
|
```
|
|
|
|
### 联表任意查
|
|
```csharp
|
|
sql = select.From<TestTypeInfo, TestTypeParentInfo>((s, b, c) => s
|
|
.LeftJoin(a => a.TestTypeInfoGuid == b.Guid)
|
|
.LeftJoin(a => b.ParentId == c.Id)).ToSql();
|
|
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TestTypeInfoGuid` as3, b.`Guid` as4, b.`ParentId` as5, b.`Name` as6, a.`Title` as7, a.`CreateTime` as8 FROM `tb_topic` a LEFT JOIN `TestTypeInfo` b ON a.`TestTypeInfoGuid` = b.`Guid` LEFT JOIN `TestTypeParentInfo` c ON b.`ParentId` = c.`Id`
|
|
```
|
|
|
|
### 原生SQL联表
|
|
```csharp
|
|
sql = select.LeftJoin("TestTypeInfo b on b.Guid = a.TestTypeInfoGuid and b.Name = ?bname", new { bname = "xxx" }).ToSql();
|
|
//SELECT a.`Id` as1, a.`Clicks` as2, a.`TestTypeInfoGuid` as3, a.`Title` as4, a.`CreateTime` as5 FROM `tb_topic` a LEFT JOIN TestTypeInfo b on b.Guid = a.TestTypeInfoGuid and b.Name = ?bname
|
|
```
|
|
|
|
# 更多文档整理中。。。 |