From e677f1710fce381576d475a7fa7fc2956f37424e Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Tue, 19 Apr 2022 13:30:22 +0800 Subject: [PATCH] Update Core --- .../QueryableProvider/NavigatManager.cs | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/NavigatManager.cs b/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/NavigatManager.cs index 0441db350..a8d443afe 100644 --- a/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/NavigatManager.cs +++ b/Src/Asp.NetCore2/SqlSugar/Abstract/QueryableProvider/NavigatManager.cs @@ -258,13 +258,15 @@ namespace SqlSugar FieldValue = String.Join(",", ids), CSharpTypeName = navObjectNameColumnInfo.PropertyInfo.PropertyType.Name })); - var navList = selector(this.Context.Queryable().AS(navEntityInfo.DbTableName).Where(conditionalModels)); - foreach (var item in list) + if (list.Any()&&navObjectNamePropety.GetValue(list.First()) == null) { - if (navObjectNamePropety.GetValue(item) == null) + var navList = selector(this.Context.Queryable().AS(navEntityInfo.DbTableName).Where(conditionalModels)); + foreach (var item in list) { + var setValue = navList.FirstOrDefault(x => navPkColumn.PropertyInfo.GetValue(x).ObjToString() == navColumn.PropertyInfo.GetValue(item).ObjToString()); navObjectNamePropety.SetValue(item, setValue); + } } } @@ -288,12 +290,13 @@ namespace SqlSugar CSharpTypeName = listItemPkColumn.PropertyInfo.PropertyType.Name })); var sqlObj = GetWhereSql(); - var navList = selector(this.Context.Queryable().AS(navEntityInfo.DbTableName).AddParameters(sqlObj.Parameters).Where(conditionalModels).WhereIF(sqlObj.WhereString.HasValue(),sqlObj.WhereString).Select(sqlObj.SelectString).OrderByIF(sqlObj.OrderByString.HasValue(),sqlObj.OrderByString)); - if (navList.HasValue()) + + if (list.Any() && navObjectNamePropety.GetValue(list.First()) == null) { - foreach (var item in list) + var navList = selector(this.Context.Queryable().AS(navEntityInfo.DbTableName).AddParameters(sqlObj.Parameters).Where(conditionalModels).WhereIF(sqlObj.WhereString.HasValue(), sqlObj.WhereString).Select(sqlObj.SelectString).OrderByIF(sqlObj.OrderByString.HasValue(), sqlObj.OrderByString)); + if (navList.HasValue()) { - if (navObjectNamePropety.GetValue(item) == null) + foreach (var item in list) { var setValue = navList .Where(x => navColumn.PropertyInfo.GetValue(x).ObjToString() == listItemPkColumn.PropertyInfo.GetValue(item).ObjToString()).ToList();