mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-12-03 20:04:08 +08:00
Update nav query
This commit is contained in:
@@ -275,6 +275,7 @@ namespace SqlSugar
|
||||
private static List<NavMappingColumn> GetMappingColumn(Expression expression)
|
||||
{
|
||||
var body = ExpressionTool.GetLambdaExpressionBody(expression);
|
||||
var parameterName=(expression as LambdaExpression).Parameters.FirstOrDefault().Name;
|
||||
List<NavMappingColumn> result = new List<NavMappingColumn>();
|
||||
if (body is NewExpression)
|
||||
{
|
||||
@@ -286,7 +287,7 @@ namespace SqlSugar
|
||||
var name=members[index].Name;
|
||||
if (item is MethodCallExpression)
|
||||
{
|
||||
AddCallError(result, item);
|
||||
AddCallError(result, item, parameterName);
|
||||
}
|
||||
index++;
|
||||
}
|
||||
@@ -304,14 +305,14 @@ namespace SqlSugar
|
||||
}
|
||||
else if(memberAssignment.Expression is MethodCallExpression)
|
||||
{
|
||||
AddCallError(result, memberAssignment.Expression);
|
||||
AddCallError(result, memberAssignment.Expression,parameterName);
|
||||
}
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
private static void AddCallError(List<NavMappingColumn> result, Expression item)
|
||||
private static void AddCallError(List<NavMappingColumn> result, Expression item,string parameterName)
|
||||
{
|
||||
var method = (item as MethodCallExpression);
|
||||
if (method.Method.Name == "ToList" && method.Arguments.Count > 0 && method.Arguments[0] is MethodCallExpression)
|
||||
@@ -325,6 +326,14 @@ namespace SqlSugar
|
||||
result.Add(new NavMappingColumn() { IsError = true });
|
||||
}
|
||||
}
|
||||
else if (method.Method.Name == "Join")
|
||||
{
|
||||
|
||||
if (item.ToString().Contains($" {parameterName}."))
|
||||
{
|
||||
result.Add(new NavMappingColumn() { IsError = true });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static bool isGroup<T, TResult>(Expression<Func<T, TResult>> expression, QueryableProvider<T> queryableProvider)
|
||||
|
||||
Reference in New Issue
Block a user