From 356f71f13e09b474d37794df1690301315f223f3 Mon Sep 17 00:00:00 2001 From: chenchun Date: Sun, 29 May 2022 16:56:02 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=AB=98=E7=BA=A7=E4=BF=9D?= =?UTF-8?q?=E5=AD=98=E5=8F=8A=E6=9F=A5=E8=AF=A2=E6=8E=92=E5=BA=8F=E6=96=B9?= =?UTF-8?q?=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Query/QueryCondition.cs | 3 ++ .../Yi.Framework.Repository/IRepository.cs | 1 + .../Yi.Framework.Repository/Repository.cs | 42 ++++++++++++++++++- 3 files changed, 45 insertions(+), 1 deletion(-) diff --git a/Yi.Framework.Net6/Yi.Framework.Model/Query/QueryCondition.cs b/Yi.Framework.Net6/Yi.Framework.Model/Query/QueryCondition.cs index 08c6a33d..6d316518 100644 --- a/Yi.Framework.Net6/Yi.Framework.Model/Query/QueryCondition.cs +++ b/Yi.Framework.Net6/Yi.Framework.Model/Query/QueryCondition.cs @@ -14,6 +14,7 @@ namespace Yi.Framework.Model.Query public List Parameters { get; set; } = new List(); public List OrderBys { get; set; } = new List(); + public bool IsAsc { get; set; } = false; } public class QueryCondition @@ -21,5 +22,7 @@ namespace Yi.Framework.Model.Query public List Parameters { get; set; } = new List(); public List OrderBys { get; set; } = new List(); + public bool IsAsc { get; set; } = false; + } } diff --git a/Yi.Framework.Net6/Yi.Framework.Repository/IRepository.cs b/Yi.Framework.Net6/Yi.Framework.Repository/IRepository.cs index e58e9d27..cbdce58a 100644 --- a/Yi.Framework.Net6/Yi.Framework.Repository/IRepository.cs +++ b/Yi.Framework.Net6/Yi.Framework.Repository/IRepository.cs @@ -24,5 +24,6 @@ namespace Yi.Framework.Repository public Task> UseSqlAsync(string sql, object parameters = null); public Task UseSqlAsync(string sql, object parameters = null); ISugarQueryable QueryConditionHandler(QueryCondition pars); + Task UpdateSuperSaveAsync(T data, Expression> columns); } } diff --git a/Yi.Framework.Net6/Yi.Framework.Repository/Repository.cs b/Yi.Framework.Net6/Yi.Framework.Repository/Repository.cs index 6a27d7ee..4f413641 100644 --- a/Yi.Framework.Net6/Yi.Framework.Repository/Repository.cs +++ b/Yi.Framework.Net6/Yi.Framework.Repository/Repository.cs @@ -144,12 +144,52 @@ namespace Yi.Framework.Repository { foreach (var item in pars.OrderBys) { - query.OrderBy(item.ToSqlFilter()); + if (pars.IsAsc) + { + query.OrderBy(item.ToSqlFilter() + " asc"); + } + else + { + query.OrderBy(item.ToSqlFilter() + " desc"); + } } } return query.Where(sugarParamters); } + + /// + /// 更新高级保存,验证重复 + /// + /// + /// + /// + public async Task UpdateSuperSaveAsync(T data, Expression> columns) + { + var x = _Db.Storageable(data) + .SplitError(it => it.Any()) + .SplitUpdate(it => true) + .WhereColumns(columns)//这里用name作为数据库查找条件 + .ToStorage(); + return await x.AsInsertable.ExecuteCommandAsync() > 0;//插入可插入部分 + } + + /// + /// 添加高级保存,验证重复 + /// + /// + /// + /// + public async Task InsertSuperSaveAsync(T data, Expression> columns) + { + var x = _Db.Storageable(data) + .SplitError(it => it.Any()) + .SplitInsert(it => true) + .WhereColumns(columns)//这里用name作为数据库查找条件 + .ToStorage(); + return await x.AsInsertable.ExecuteCommandAsync() > 0;//插入可插入部分 + } + }