diff --git a/Src/Asp.Net/SqlSugar/Abstract/SugarProvider/SqlSugarAccessory.cs b/Src/Asp.Net/SqlSugar/Abstract/SugarProvider/SqlSugarAccessory.cs index 3c774ac26..25face406 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/SugarProvider/SqlSugarAccessory.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/SugarProvider/SqlSugarAccessory.cs @@ -536,6 +536,10 @@ namespace SqlSugar Check.Exception(SugarCompatible.IsFramework, "TDengine only support .net core"); InstanceFactory.CustomDllName = SugarCompatible.IsFramework ? "SqlSugar.TDengine" : "SqlSugar.TDengineCore"; break; + case DbType.HANA: + Check.Exception(SugarCompatible.IsFramework, "NANA only support .net core"); + InstanceFactory.CustomDllName = "SqlSugar.HanaConnector"; + break; case DbType.Xugu: Check.Exception(SugarCompatible.IsFramework, "Xugu only support .net core"); //InstanceFactory.CustomDbName = "Xugu"; diff --git a/Src/Asp.Net/SqlSugar/Enum/DbType.cs b/Src/Asp.Net/SqlSugar/Enum/DbType.cs index f44d7f495..e65f8ad49 100644 --- a/Src/Asp.Net/SqlSugar/Enum/DbType.cs +++ b/Src/Asp.Net/SqlSugar/Enum/DbType.cs @@ -35,6 +35,7 @@ namespace SqlSugar GoldenDB, TDSQLForPGODBC, TDSQL, + HANA, Custom =900 } } diff --git a/Src/Asp.Net/SqlSugar/ExpressionsToSql/DbMethods/DefaultDbMethod.cs b/Src/Asp.Net/SqlSugar/ExpressionsToSql/DbMethods/DefaultDbMethod.cs index 0849774a3..eaed612d9 100644 --- a/Src/Asp.Net/SqlSugar/ExpressionsToSql/DbMethods/DefaultDbMethod.cs +++ b/Src/Asp.Net/SqlSugar/ExpressionsToSql/DbMethods/DefaultDbMethod.cs @@ -141,7 +141,15 @@ namespace SqlSugar } else { - inValues.Add(item); + if (item is string &&item.HasValue() && model?.Conext?.SugarContext?.Context?.CurrentConnectionConfig?.DbType == DbType.MySql) + { + var newValue= item.ToString().Replace("\\", "\\\\"); + inValues.Add(newValue); + } + else + { + inValues.Add(item); + } } } } diff --git a/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/OneToOneNavgateExpressionN.cs b/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/OneToOneNavgateExpressionN.cs index 6ab97888f..340624937 100644 --- a/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/OneToOneNavgateExpressionN.cs +++ b/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/OneToOneNavgateExpressionN.cs @@ -47,6 +47,7 @@ namespace SqlSugar var memberInfo = this.items.Where(it => it.Type == 1).First(); var subInfos = this.items.Where(it => it.Type == 2).Reverse().ToList(); var formInfo = subInfos.First(); + var rootWhereSql = formInfo?.Nav?.WhereSql; var joinInfos = subInfos.Skip(1).ToList(); var i = 0; var masterShortName = formInfo.ThisEntityInfo.DbTableName + i; @@ -80,6 +81,10 @@ namespace SqlSugar } var selectProperyInfo = ExpressionTool.GetMemberName(memberInfo.Expression); var selectColumnInfo = memberInfo.ParentEntityInfo.Columns.First(it => it.PropertyName == selectProperyInfo); + if (rootWhereSql?.HasValue() == true) + { + queryable.Where(rootWhereSql); + } queryable.Select($" {ToShortName(lastShortName)}.{queryable.SqlBuilder.GetTranslationColumnName(selectColumnInfo.DbColumnName)}"); var last = subInfos.First(); var FirstPkColumn = last.ThisEntityInfo.Columns.FirstOrDefault(it => it.IsPrimarykey);