mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-09-23 12:33:44 +08:00
-
This commit is contained in:
@@ -190,28 +190,28 @@ namespace SqlSugar
|
|||||||
#region Private methods
|
#region Private methods
|
||||||
protected List<JoinQueryInfo> GetJoinInfos(Expression joinExpression, ref string shortName, params Type[] entityTypeArray)
|
protected List<JoinQueryInfo> GetJoinInfos(Expression joinExpression, ref string shortName, params Type[] entityTypeArray)
|
||||||
{
|
{
|
||||||
List<JoinQueryInfo> reval = new List<JoinQueryInfo>();
|
List<JoinQueryInfo> result = new List<JoinQueryInfo>();
|
||||||
var lambdaParameters = ((LambdaExpression)joinExpression).Parameters.ToList();
|
var lambdaParameters = ((LambdaExpression)joinExpression).Parameters.ToList();
|
||||||
ExpressionContext exp = new ExpressionContext();
|
ExpressionContext expressionContext = new ExpressionContext();
|
||||||
exp.MappingColumns = this.Context.MappingColumns;
|
expressionContext.MappingColumns = this.Context.MappingColumns;
|
||||||
exp.MappingTables = this.Context.MappingTables;
|
expressionContext.MappingTables = this.Context.MappingTables;
|
||||||
exp.Resolve(joinExpression, ResolveExpressType.Join);
|
expressionContext.Resolve(joinExpression, ResolveExpressType.Join);
|
||||||
int i = 0;
|
int i = 0;
|
||||||
var joinArray = exp.Result.GetResultArray();
|
var joinArray = expressionContext.Result.GetResultArray();
|
||||||
foreach (var type in entityTypeArray)
|
foreach (var entityType in entityTypeArray)
|
||||||
{
|
{
|
||||||
var isFirst = i == 0;++i;
|
var isFirst = i == 0;++i;
|
||||||
JoinQueryInfo joinInfo = new JoinQueryInfo();
|
JoinQueryInfo joinInfo = new JoinQueryInfo();
|
||||||
var hasMappingTable = exp.MappingTables.IsValuable();
|
var hasMappingTable = expressionContext.MappingTables.IsValuable();
|
||||||
MappingTable mappingInfo = null;
|
MappingTable mappingInfo = null;
|
||||||
if (hasMappingTable)
|
if (hasMappingTable)
|
||||||
{
|
{
|
||||||
mappingInfo = exp.MappingTables.FirstOrDefault(it => it.EntityName.Equals(type.Name, StringComparison.CurrentCultureIgnoreCase));
|
mappingInfo = expressionContext.MappingTables.FirstOrDefault(it => it.EntityName.Equals(entityType.Name, StringComparison.CurrentCultureIgnoreCase));
|
||||||
joinInfo.TableName = mappingInfo != null ? mappingInfo.DbTableName : type.Name;
|
joinInfo.TableName = mappingInfo != null ? mappingInfo.DbTableName : entityType.Name;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
joinInfo.TableName = type.Name;
|
joinInfo.TableName = entityType.Name;
|
||||||
}
|
}
|
||||||
if (isFirst)
|
if (isFirst)
|
||||||
{
|
{
|
||||||
@@ -224,9 +224,9 @@ namespace SqlSugar
|
|||||||
joinInfo.JoinType = (JoinType)Enum.Parse(typeof(JoinType), joinString);
|
joinInfo.JoinType = (JoinType)Enum.Parse(typeof(JoinType), joinString);
|
||||||
joinInfo.JoinWhere = joinArray[i * 2 - 1];
|
joinInfo.JoinWhere = joinArray[i * 2 - 1];
|
||||||
joinInfo.JoinIndex = i;
|
joinInfo.JoinIndex = i;
|
||||||
reval.Add((joinInfo));
|
result.Add((joinInfo));
|
||||||
}
|
}
|
||||||
return reval;
|
return result;
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user