mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-04-30 04:45:54 +08:00
Synchronization code
This commit is contained in:
parent
627827b8c2
commit
771c3ebe46
@ -727,11 +727,16 @@ namespace SqlSugar
|
||||
if (properyName != null)
|
||||
{
|
||||
var fkColumnsInfo = entityInfo.Columns.FirstOrDefault(x => x.PropertyName == properyName);
|
||||
var pkColumnsInfo = entityInfo.Columns.FirstOrDefault(x => x.IsPrimarykey);
|
||||
if (fkColumnsInfo != null)
|
||||
{
|
||||
var fkName = fkColumnsInfo.DbColumnName;
|
||||
AppColumns(result, queryable, fkName);
|
||||
}
|
||||
if (pkColumnsInfo!=null&&fkColumnsInfo == null&&result.SelectString != null && !result.SelectString.Contains(queryable.SqlBuilder.GetTranslationColumnName(pkColumnsInfo.DbColumnName)))
|
||||
{
|
||||
AppColumns(result, queryable, pkColumnsInfo.DbColumnName);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -656,7 +656,12 @@ namespace SqlSugar
|
||||
}
|
||||
foreach (var item in navManages)
|
||||
{
|
||||
var navName = ExpressionTool.GetMemberName(item.Expressions.First());
|
||||
var FirstExp = item.Expressions.First();
|
||||
var navName = ExpressionTool.GetMemberName(FirstExp);
|
||||
if (FirstExp is LambdaExpression &&ExpressionTool.GetMethodName((FirstExp as LambdaExpression).Body) == "ToList")
|
||||
{
|
||||
navName = ExpressionTool.GetFirstTypeNameFromExpression(FirstExp);
|
||||
}
|
||||
var navColumn = entityColumns.Where(it => it.IsPrimarykey == false).Where(it => it.Navigat != null).FirstOrDefault(it => it.PropertyName == navName);
|
||||
if (navColumn != null && navColumn.Navigat.NavigatType != NavigateType.ManyToMany)
|
||||
{
|
||||
|
@ -215,6 +215,28 @@ namespace SqlSugar
|
||||
return newExp;
|
||||
}
|
||||
|
||||
|
||||
public static string GetFirstTypeNameFromExpression(Expression expression)
|
||||
{
|
||||
if (expression is LambdaExpression lambda)
|
||||
{
|
||||
return GetFirstTypeNameFromExpression(lambda.Body);
|
||||
}
|
||||
else if (expression is MemberExpression member)
|
||||
{
|
||||
return member.Member.Name;
|
||||
}
|
||||
else if (expression is NewExpression newExpr)
|
||||
{
|
||||
return newExpr.Type.Name;
|
||||
}
|
||||
else if (expression is MethodCallExpression methodCall)
|
||||
{
|
||||
return GetFirstTypeNameFromExpression(methodCall.Arguments.FirstOrDefault());
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
public static string GetMethodName(Expression expression)
|
||||
{
|
||||
if (expression is MethodCallExpression)
|
||||
|
Loading…
Reference in New Issue
Block a user