From fa4ea7585c17a26c9c3f590076294634e51310e3 Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Mon, 18 Dec 2023 13:50:39 +0800 Subject: [PATCH] Update SugarColumn.QuerySql --- .../Abstract/QueryableProvider/NavigatManager.cs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/NavigatManager.cs b/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/NavigatManager.cs index 52b906a83..3aeb90041 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/NavigatManager.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/NavigatManager.cs @@ -362,7 +362,7 @@ namespace SqlSugar if (sqlObj.SelectString == null) { var columns = navEntityInfo.Columns.Where(it => !it.IsIgnore) - .Select(it => QueryBuilder.Builder.GetTranslationColumnName(it.DbColumnName) + " AS " + QueryBuilder.Builder.GetTranslationColumnName(it.PropertyName)).ToList(); + .Select(it => GetOneToOneSelectByColumnInfo(it)).ToList(); sqlObj.SelectString = String.Join(",", columns); } var navList = selector(db.Queryable().ClearFilter(QueryBuilder.RemoveFilters).Filter(navPkColumn.IsPrimarykey ? null : this.QueryBuilder?.IsDisabledGobalFilter == true ? null : navEntityInfo.Type).AS(GetDbTableName(navEntityInfo)) @@ -396,7 +396,7 @@ namespace SqlSugar } } } - + private void OneToMany(List list, Func, List> selector, EntityInfo listItemEntity, System.Reflection.PropertyInfo navObjectNamePropety, EntityColumnInfo navObjectNameColumnInfo) { var navEntity = navObjectNameColumnInfo.PropertyInfo.PropertyType.GetGenericArguments()[0]; @@ -931,5 +931,13 @@ namespace SqlSugar } return QueryBuilder.Builder.GetTranslationColumnName(it.DbColumnName) + " AS " + QueryBuilder.Builder.GetTranslationColumnName(it.PropertyName); } + private string GetOneToOneSelectByColumnInfo(EntityColumnInfo it) + { + if (it.QuerySql.HasValue()) + { + return it.QuerySql + " AS " + QueryBuilder.Builder.GetTranslationColumnName(it.PropertyName); + } + return QueryBuilder.Builder.GetTranslationColumnName(it.DbColumnName) + " AS " + QueryBuilder.Builder.GetTranslationColumnName(it.PropertyName); + } } }