mirror of
https://github.com/dotnetcore/FreeSql.git
synced 2026-02-22 00:00:57 +08:00
udpate
33
动态操作.md
33
动态操作.md
@@ -38,9 +38,15 @@ fsql.InsertOrUpdateDict(dic).AsTable("table1").WherePrimary("id").ExecuteAffrows
|
||||
|
||||
- InsertDict/UpdateDict/DeleteDict/InsertOrUpdateDict 都支持批量操作,对应类型 List\<Dictionary\<string, object\>\>
|
||||
|
||||
## 动态条件 WhereDynamicFilter
|
||||
## 动态条件
|
||||
|
||||
ISelect.WhereDynamicFilter 方法实现动态过滤条件(与前端交互),支持的操作符:
|
||||
1、ISelect.Where(string sql) 使用原生条件:
|
||||
|
||||
```csharp
|
||||
fsql.Select<Region>().Where("a.id > 0") //提示:存在SQL注入安全问题
|
||||
```
|
||||
|
||||
2、ISelect.WhereDynamicFilter 方法实现动态过滤条件(与前端交互),支持的操作符:
|
||||
|
||||
- Contains/StartsWith/EndsWith/NotContains/NotStartsWith/NotEndsWith:包含/不包含,like '%xx%',或者 like 'xx%',或者 like '%xx'
|
||||
- Equal/NotEqual:等于/不等于
|
||||
@@ -77,9 +83,15 @@ fsql.Select<Region>().WhereDynamicFilter(dyfilter).ToList();
|
||||
|
||||
[《高效理解 FreeSql WhereDynamicFilter,深入了解设计初衷》](https://www.cnblogs.com/FreeSql/p/16485310.html)
|
||||
|
||||
## 动态排序 OrderByPropertyName
|
||||
## 动态排序
|
||||
|
||||
ISelect.OrderByPropertyName 方法实现动态排序,如下:
|
||||
1、ISelect.OrderBy(string sql) 使用原生排序:
|
||||
|
||||
```csharp
|
||||
fsql.Select<Region>().OrderBy("a.id desc") //提示:存在SQL注入安全问题
|
||||
```
|
||||
|
||||
2、ISelect.OrderByPropertyName 使用属性名排序:
|
||||
|
||||
- 支持导航属性,比如 OrderByPropertyName("Parent.Code")
|
||||
- 支持多表查询,比如 OrderByPropertyName("b.Code")
|
||||
@@ -115,5 +127,16 @@ dtos.IncludeByPropertyName(
|
||||
);
|
||||
```
|
||||
|
||||
## 动态返回数据 ToDataTableByPropertyName
|
||||
## 动态返回数据
|
||||
|
||||
1、ISelect.ToList 使用原生SQL返回数据:
|
||||
|
||||
```csharp
|
||||
List<(int, string)> list = fsql.Select<Region>()
|
||||
.ToList<(int, string)>("a.id,a.name") //提示:存在SQL注入安全问题
|
||||
```
|
||||
|
||||
2、ISelect.ToDataTableByPropertyName 使用属性名返回数据:
|
||||
|
||||
- 支持导航属性,比如 ToDataTableByPropertyName("Parent.Code")
|
||||
- 支持多表查询,比如 ToDataTableByPropertyName("b.Code")
|
||||
|
||||
Reference in New Issue
Block a user