mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-11-18 16:59:03 +08:00
Update exp to sql
This commit is contained in:
@@ -5,7 +5,7 @@ using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Linq.Expressions;
|
||||
using System.Reflection;
|
||||
using System.Text;
|
||||
using System.Text;
|
||||
namespace SqlSugar
|
||||
{
|
||||
public class ExpressionTool
|
||||
@@ -878,7 +878,24 @@ namespace SqlSugar
|
||||
additem.ShortName = member.Expression + "";
|
||||
additem.RightName = member.Member.Name;
|
||||
additem.RightDbName = context.GetDbColumnName(entityName, additem.RightName);
|
||||
var isNavMember = member.Expression != null
|
||||
&& ExpressionTool.IsNavMember(context, member.Expression);
|
||||
additem.LeftNameName = member.Member.Name;
|
||||
if (isNavMember && (context?.SugarContext?.QueryBuilder?.JoinQueryInfos?.Count()??0)==0)
|
||||
{
|
||||
var exp = context.GetCopyContextWithMapping();
|
||||
exp.Resolve(member, ResolveExpressType.FieldSingle);
|
||||
var sql = exp.Result.GetResultString();
|
||||
if (context.IsSingle&& context.CurrentShortName.IsNullOrEmpty())
|
||||
{
|
||||
context.SingleTableNameSubqueryShortName=ExpressionTool.GetParameters(member)?.FirstOrDefault()?.Name;
|
||||
}
|
||||
additem.RightDbName = sql;
|
||||
}
|
||||
else if (isNavMember && context?.SugarContext?.QueryBuilder?.JoinQueryInfos?.Any(it=>it.ShortName?.StartsWith("pnv_" + ExpressionTool.GetMemberName(member.Expression)) ==true)==true)
|
||||
{
|
||||
additem.ShortName = "pnv_"+ExpressionTool.GetMemberName(member.Expression);
|
||||
}
|
||||
//additem.Value = "";
|
||||
result.Add(additem);
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<package >
|
||||
<metadata>
|
||||
<id>SqlSugarCore</id>
|
||||
<version>5.1.4.186-preview04</version>
|
||||
<version>5.1.4.186-preview06</version>
|
||||
<authors>sunkaixuan</authors>
|
||||
<owners>果糖大数据科技</owners>
|
||||
<licenseUrl>http://www.apache.org/licenses/LICENSE-2.0.html</licenseUrl>
|
||||
|
||||
Reference in New Issue
Block a user