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;//插入可插入部分 + } + }