From 681200e5fc4ddfd39cb05c2d641c0e63cd33341c Mon Sep 17 00:00:00 2001 From: jxx <283591387@qq.com.com> Date: Tue, 10 Mar 2020 11:13:55 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=9F=A5=E8=AF=A2=E6=8E=92?= =?UTF-8?q?=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Vue.Net/VOL.Core/BaseProvider/ServiceBase.cs | 56 +++++++++++--------- 1 file changed, 31 insertions(+), 25 deletions(-) diff --git a/Vue.Net/VOL.Core/BaseProvider/ServiceBase.cs b/Vue.Net/VOL.Core/BaseProvider/ServiceBase.cs index 373144d4..c147f9a5 100644 --- a/Vue.Net/VOL.Core/BaseProvider/ServiceBase.cs +++ b/Vue.Net/VOL.Core/BaseProvider/ServiceBase.cs @@ -83,19 +83,27 @@ namespace VOL.Core.BaseProvider /// private void GetPageDataSort(PageDataOptions pageData, PropertyInfo[] propertyInfo) { - if (base.OrderByExpression != null) { - pageData.Sort = string.Join(" ,", base.OrderByExpression.GetExpressionToDic().Select(x => x.Key + " " + x.Value.ToString()).ToList()); + pageData.Sort = string.Join(" ,", + base.OrderByExpression + .GetExpressionToDic() + .Select(x => x.Key + " " + x.Value.ToString()) + .ToList()); return; } pageData.Sort = (pageData.Sort ?? "").Trim().ToLower(); + //排序字段不存在直接移除 + if (!string.IsNullOrEmpty(pageData.Sort) && !propertyInfo.Any(x => x.Name.ToLower() == pageData.Sort)) + { + pageData.Sort = null; + } //如果没有排序字段,则使用主键作为排序字段 - //如果主键不是自增Int类型则使用appsettings.json中CreateMember->DateField配置的创建时间作为排序 - if (!string.IsNullOrEmpty(pageData.Sort)) + if (string.IsNullOrEmpty(pageData.Sort)) { PropertyInfo property = propertyInfo.GetKeyProperty(); + //如果主键不是自增类型则使用appsettings.json中CreateMember->DateField配置的创建时间作为排序 if (property.PropertyType == typeof(int) || property.PropertyType == typeof(Int64)) { if (!propertyInfo.Any(x => x.Name.ToLower() == pageData.Sort)) @@ -105,11 +113,9 @@ namespace VOL.Core.BaseProvider } else { - if (string.IsNullOrEmpty(AppSetting.CreateMember.DateField)) - throw new Exception("未配置好查询的排序默认排序字段"); + if (string.IsNullOrEmpty(AppSetting.CreateMember.DateField)) throw new Exception("未配置好查询的排序默认排序字段"); pageData.Sort = AppSetting.CreateMember.DateField; } - } pageData.Order = (pageData.Order ?? _desc).Trim().ToLower(); if (pageData.Order != _desc && pageData.Order != _asc) @@ -512,18 +518,18 @@ namespace VOL.Core.BaseProvider { repository.Add(entity); repository.DbContext.SaveChanges(); - //保存明细 - if (list != null && list.Count > 0) + //保存明细 + if (list != null && list.Count > 0) { - //获取保存后的主键值 - PropertyInfo mainKey = typeof(T).GetKeyProperty(); + //获取保存后的主键值 + PropertyInfo mainKey = typeof(T).GetKeyProperty(); PropertyInfo detailMainKey = typeof(TDetail).GetProperties() .Where(q => q.Name.ToLower() == mainKey.Name.ToLower()).FirstOrDefault(); object keyValue = mainKey.GetValue(entity); list.ForEach(x => { - //设置用户默认值 - x.SetCreateDefaultVal(); + //设置用户默认值 + x.SetCreateDefaultVal(); detailMainKey.SetValue(x, keyValue); repository.DbContext.Entry(x).State = EntityState.Added; }); @@ -671,18 +677,18 @@ namespace VOL.Core.BaseProvider //明细修改 editList.ForEach(x => { - //获取编辑的字段 - string[] updateField = saveModel.DetailData - .Where(c => c[detailKeyInfo.Name].ChangeType(detailKeyInfo.PropertyType) - .Equal(detailKeyInfo.GetValue(x))) - .FirstOrDefault() - .Keys.Where(k => k != detailKeyInfo.Name) - .Where(r => !CreateFields.Contains(r)) - .ToArray(); - //設置默認值 - x.SetModifyDefaultVal(); - //添加修改字段 - repository.Update(x, updateField); + //获取编辑的字段 + string[] updateField = saveModel.DetailData + .Where(c => c[detailKeyInfo.Name].ChangeType(detailKeyInfo.PropertyType) + .Equal(detailKeyInfo.GetValue(x))) + .FirstOrDefault() + .Keys.Where(k => k != detailKeyInfo.Name) + .Where(r => !CreateFields.Contains(r)) + .ToArray(); + //設置默認值 + x.SetModifyDefaultVal(); + //添加修改字段 + repository.Update(x, updateField); }); //明细新增