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);
});
//明细新增