From bfac696895eb4f58bb3ca4016ea7668b69376a32 Mon Sep 17 00:00:00 2001 From: 2881099 <2881099@qq.com> Date: Sat, 13 Aug 2022 17:28:35 +0800 Subject: [PATCH] udpate --- 动态操作.md | 33 ++++++++++++++++++++++++++++----- 1 file changed, 28 insertions(+), 5 deletions(-) diff --git a/动态操作.md b/动态操作.md index ab1f8f3..7a95787 100644 --- a/动态操作.md +++ b/动态操作.md @@ -38,9 +38,15 @@ fsql.InsertOrUpdateDict(dic).AsTable("table1").WherePrimary("id").ExecuteAffrows - InsertDict/UpdateDict/DeleteDict/InsertOrUpdateDict 都支持批量操作,对应类型 List\\> -## 动态条件 WhereDynamicFilter +## 动态条件 -ISelect.WhereDynamicFilter 方法实现动态过滤条件(与前端交互),支持的操作符: +1、ISelect.Where(string sql) 使用原生条件: + +```csharp +fsql.Select().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().WhereDynamicFilter(dyfilter).ToList(); [《高效理解 FreeSql WhereDynamicFilter,深入了解设计初衷》](https://www.cnblogs.com/FreeSql/p/16485310.html) -## 动态排序 OrderByPropertyName +## 动态排序 -ISelect.OrderByPropertyName 方法实现动态排序,如下: +1、ISelect.OrderBy(string sql) 使用原生排序: + +```csharp +fsql.Select().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() + .ToList<(int, string)>("a.id,a.name") //提示:存在SQL注入安全问题 +``` + +2、ISelect.ToDataTableByPropertyName 使用属性名返回数据: + +- 支持导航属性,比如 ToDataTableByPropertyName("Parent.Code") +- 支持多表查询,比如 ToDataTableByPropertyName("b.Code")