mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-05-04 04:37:58 +08:00
Synchronization code
This commit is contained in:
parent
8b5d4135bc
commit
3723ed522e
@ -824,7 +824,14 @@ namespace SqlSugar
|
|||||||
{
|
{
|
||||||
shortName = $"{Builder.GetTranslationColumnName(this.TableShortName)}.";
|
shortName = $"{Builder.GetTranslationColumnName(this.TableShortName)}.";
|
||||||
}
|
}
|
||||||
result += string.Join(",",this.AppendNavInfo.AppendProperties.Select(it=> shortName+Builder.GetTranslationColumnName(it.Value)+ " AS SugarNav_" + it.Key));
|
if (this.GroupByValue.HasValue())
|
||||||
|
{
|
||||||
|
result += string.Join(",",this.AppendNavInfo.AppendProperties.Select(it => "max(" + shortName + Builder.GetTranslationColumnName(it.Value) + ") AS SugarNav_" + it.Key));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
result += string.Join(",", this.AppendNavInfo.AppendProperties.Select(it => shortName + Builder.GetTranslationColumnName(it.Value) + " AS SugarNav_" + it.Key));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (result.Contains("/**/*"))
|
if (result.Contains("/**/*"))
|
||||||
{
|
{
|
||||||
|
@ -19,6 +19,8 @@ namespace SqlSugar
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
OneToManyNavgateExpression nav = new OneToManyNavgateExpression(this.Context?.SugarContext?.Context, this);
|
OneToManyNavgateExpression nav = new OneToManyNavgateExpression(this.Context?.SugarContext?.Context, this);
|
||||||
|
nav.ParameterIndex = this.Context.ParameterIndex;
|
||||||
|
this.Context.ParameterIndex++;
|
||||||
if (nav.IsNavgate(express))
|
if (nav.IsNavgate(express))
|
||||||
{
|
{
|
||||||
var sql = nav.GetSql();
|
var sql = nav.GetSql();
|
||||||
|
@ -18,6 +18,7 @@ namespace SqlSugar
|
|||||||
private string MemberName;
|
private string MemberName;
|
||||||
private string MethodName;
|
private string MethodName;
|
||||||
private string whereSql;
|
private string whereSql;
|
||||||
|
public int ParameterIndex = 0;
|
||||||
private MethodCallExpressionResolve methodCallExpressionResolve;
|
private MethodCallExpressionResolve methodCallExpressionResolve;
|
||||||
public OneToManyNavgateExpression(SqlSugarProvider context, MethodCallExpressionResolve methodCallExpressionResolve)
|
public OneToManyNavgateExpression(SqlSugarProvider context, MethodCallExpressionResolve methodCallExpressionResolve)
|
||||||
{
|
{
|
||||||
@ -171,7 +172,7 @@ namespace SqlSugar
|
|||||||
var bTableName = queryable.QueryBuilder.Builder.GetTranslationTableName(this.ProPertyEntity.DbTableName);
|
var bTableName = queryable.QueryBuilder.Builder.GetTranslationTableName(this.ProPertyEntity.DbTableName);
|
||||||
this.context.InitMappingInfo(mappingType);
|
this.context.InitMappingInfo(mappingType);
|
||||||
var queryBuilerAB=this.context.Queryable<object>().QueryBuilder;
|
var queryBuilerAB=this.context.Queryable<object>().QueryBuilder;
|
||||||
queryBuilerAB.LambdaExpressions.ParameterIndex = 100+this.methodCallExpressionResolve.Index;
|
queryBuilerAB.LambdaExpressions.ParameterIndex = 100+this.ParameterIndex;
|
||||||
var filters= queryBuilerAB.GetFilters(mappingType);
|
var filters= queryBuilerAB.GetFilters(mappingType);
|
||||||
if (filters.HasValue())
|
if (filters.HasValue())
|
||||||
{
|
{
|
||||||
@ -228,10 +229,22 @@ namespace SqlSugar
|
|||||||
{
|
{
|
||||||
queryable.QueryBuilder.TableShortName = PropertyShortName;
|
queryable.QueryBuilder.TableShortName = PropertyShortName;
|
||||||
}
|
}
|
||||||
mapper.Sql = queryable
|
var sqlObj = queryable
|
||||||
.AS(this.ProPertyEntity.DbTableName)
|
.AS(this.ProPertyEntity.DbTableName)
|
||||||
|
.Filter(this.ProPertyEntity.Type)
|
||||||
.WhereIF(!string.IsNullOrEmpty(whereSql), whereSql)
|
.WhereIF(!string.IsNullOrEmpty(whereSql), whereSql)
|
||||||
.Where($" {name}={ShorName}.{pk} ").Select(MethodName=="Any"?"1":" COUNT(1) ").ToSql().Key;
|
.Where($" {name}={ShorName}.{pk} ").Select(MethodName == "Any" ? "1" : " COUNT(1) ").ToSql();
|
||||||
|
if (sqlObj.Value?.Any() == true)
|
||||||
|
{
|
||||||
|
foreach (var item in sqlObj.Value)
|
||||||
|
{
|
||||||
|
if (!this.methodCallExpressionResolve.Context.Parameters.Any(it => it.ParameterName == item.ParameterName))
|
||||||
|
{
|
||||||
|
this.methodCallExpressionResolve.Context.Parameters.Add(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
mapper.Sql = sqlObj.Key;
|
||||||
mapper.Sql = $" ({mapper.Sql}) ";
|
mapper.Sql = $" ({mapper.Sql}) ";
|
||||||
mapper.Sql = GetMethodSql(mapper.Sql);
|
mapper.Sql = GetMethodSql(mapper.Sql);
|
||||||
return mapper;
|
return mapper;
|
||||||
|
Loading…
Reference in New Issue
Block a user