Synchronization code

This commit is contained in:
sunkaixuan 2023-07-12 17:37:42 +08:00
parent c81ac9b305
commit 4b7d59adc8
2 changed files with 14 additions and 4 deletions

View File

@ -227,12 +227,17 @@ namespace SqlSugar
var expResult = DeleteBuilder.GetExpressionValue(expression, ResolveExpressType.WhereSingle);
var whereString = expResult.GetResultString();
if (expression.ToString().Contains("Subqueryable()")) {
var entityTableName = this.EntityInfo.DbTableName;
if (this.DeleteBuilder.AsName.HasValue())
{
entityTableName = this.DeleteBuilder.AsName;
}
if (ExpressionTool.GetParameters(expression).First().Type == typeof(T))
{
var tableName = this.SqlBuilder.GetTranslationColumnName(this.EntityInfo.DbTableName);
var tableName = this.SqlBuilder.GetTranslationColumnName(entityTableName);
whereString = whereString.Replace(tableName, $"( SELECT * FROM {tableName}) ");
}
whereString = whereString.Replace(this.SqlBuilder.GetTranslationColumnName(expression.Parameters.First().Name) + ".", this.SqlBuilder.GetTranslationTableName(this.EntityInfo.DbTableName) + ".");
whereString = whereString.Replace(this.SqlBuilder.GetTranslationColumnName(expression.Parameters.First().Name) + ".", this.SqlBuilder.GetTranslationTableName(entityTableName) + ".");
}
else if (expResult.IsNavicate)
{

View File

@ -784,12 +784,17 @@ namespace SqlSugar
var whereString = expResult.GetResultString();
if (expression.ToString().Contains("Subqueryable()"))
{
var entityTableName = this.EntityInfo.DbTableName;
if (UpdateBuilder.TableName.HasValue())
{
entityTableName = UpdateBuilder.TableName;
}
if (ExpressionTool.GetParameters(expression).First().Type == typeof(T))
{
var tableName = this.SqlBuilder.GetTranslationColumnName(this.EntityInfo.DbTableName);
var tableName = this.SqlBuilder.GetTranslationColumnName(entityTableName);
whereString = whereString.Replace(tableName, $"( SELECT * FROM {tableName}) ");
}
whereString = whereString.Replace(this.SqlBuilder.GetTranslationColumnName(expression.Parameters.First().Name) + ".", this.SqlBuilder.GetTranslationTableName(this.EntityInfo.DbTableName) + ".");
whereString = whereString.Replace(this.SqlBuilder.GetTranslationColumnName(expression.Parameters.First().Name) + ".", this.SqlBuilder.GetTranslationTableName(entityTableName) + ".");
}
else if (expResult.IsNavicate)
{