Delete support navigate exp

This commit is contained in:
sunkaixuan
2022-06-14 11:41:28 +08:00
parent f4422d3a81
commit 4e527a36df
5 changed files with 22 additions and 3 deletions

View File

@@ -184,8 +184,12 @@ namespace SqlSugar
{
var expResult = DeleteBuilder.GetExpressionValue(expression, ResolveExpressType.WhereSingle);
var whereString = expResult.GetResultString();
if (expression.ToString().Contains("Subqueryable()")){
whereString = whereString.Replace(this.SqlBuilder.GetTranslationColumnName(expression.Parameters.First().Name) + ".",this.SqlBuilder.GetTranslationTableName(this.EntityInfo.DbTableName) + ".");
if (expression.ToString().Contains("Subqueryable()")) {
whereString = whereString.Replace(this.SqlBuilder.GetTranslationColumnName(expression.Parameters.First().Name) + ".", this.SqlBuilder.GetTranslationTableName(this.EntityInfo.DbTableName) + ".");
}
else if (expResult.IsNavicate)
{
whereString = whereString.Replace(expression.Parameters.First().Name + ".", this.SqlBuilder.GetTranslationTableName(this.EntityInfo.DbTableName) + ".");
}
DeleteBuilder.WhereInfos.Add(whereString);
return this;

View File

@@ -154,6 +154,7 @@ namespace SqlSugar
{
resolveExpress.PgSqlIsAutoToLower = true;
}
resolveExpress.SugarContext = new ExpressionOutParameter() { Context = this.Context };
resolveExpress.MappingColumns = Context.MappingColumns;
resolveExpress.MappingTables = Context.MappingTables;
resolveExpress.IgnoreComumnList = Context.IgnoreColumns;

View File

@@ -9,6 +9,7 @@ namespace SqlSugar
{
public bool IsLockCurrentParameter { get; set; }
public bool IsUpper { get; set; }
public bool IsNavicate { get; set; }
private ExpressionParameter _CurrentParameter;
public ExpressionParameter CurrentParameter
{

View File

@@ -682,7 +682,16 @@ namespace SqlSugar
}
return result; ;
}
protected void SetNavigateResult()
{
if (this.Context != null)
{
if (this.Context.Result != null)
{
this.Context.Result.IsNavicate = true;
}
}
}
private string GetAsName(Expression item, object shortName, PropertyInfo property)
{
string asName;

View File

@@ -248,6 +248,7 @@ namespace SqlSugar
if (nav.IsNavgate(express))
{
var sql = nav.GetSql();
SetNavigateResult();
this.Context.SingleTableNameSubqueryShortName = nav.ShorName;
base.AppendValue(parameter, isLeft, sql);
return;
@@ -257,6 +258,7 @@ namespace SqlSugar
if (nav2.IsNavgate(express))
{
var sql = nav2.GetSql();
SetNavigateResult();
this.Context.SingleTableNameSubqueryShortName = nav2.shorName;
base.AppendValue(parameter, isLeft, sql);
return;
@@ -293,6 +295,8 @@ namespace SqlSugar
}
}
private void NativeExtensionMethod(ExpressionParameter parameter, MethodCallExpression express, bool? isLeft, string name, List<MethodCallExpressionArgs> appendArgs = null)
{
var method = express.Method;