diff --git a/Src/Asp.Net/SqlSugar/Abstract/DbFirstProvider/DbFirstProvider.cs b/Src/Asp.Net/SqlSugar/Abstract/DbFirstProvider/DbFirstProvider.cs index 9dca52059..e48184b77 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/DbFirstProvider/DbFirstProvider.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/DbFirstProvider/DbFirstProvider.cs @@ -23,6 +23,7 @@ namespace SqlSugar private Func FormatFileNameFunc { get; set; } private bool IsStringNullable {get;set; } private Func PropertyTextTemplateFunc { get; set; } + private Func ReplaceClassStringFunc { get; set; } private ISqlBuilder SqlBuilder { get @@ -166,6 +167,11 @@ namespace SqlSugar this.FormatFileNameFunc = formatFileNameFunc; return this; } + public IDbFirst CreatedReplaceClassString(Func replaceClassStringFunc) + { + this.ReplaceClassStringFunc = replaceClassStringFunc; + return this; + } public IDbFirst IsCreateDefaultValue(bool isCreateDefaultValue = true) { this.IsDefaultValue = isCreateDefaultValue; @@ -219,6 +225,10 @@ namespace SqlSugar string className = tableInfo.Name; classText = GetClassString(tableInfo, ref className); result.Remove(className); + if (this.ReplaceClassStringFunc != null) + { + classText=this.ReplaceClassStringFunc(classText); + } result.Add(className, classText); } catch (Exception ex) @@ -465,7 +475,7 @@ namespace SqlSugar { return "bool"; } - if (result.EqualCase("char")) + if (result.EqualCase("char")|| result.EqualCase("char?")) { return "string"; } diff --git a/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs b/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs index 39b87a542..9c8f37e2a 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs @@ -1480,6 +1480,7 @@ namespace SqlSugar result.QueryBuilder.AppendNavInfo = this.QueryBuilder.AppendNavInfo; result.QueryBuilder.LambdaExpressions.ParameterIndex = QueryBuilder.LambdaExpressions.ParameterIndex++; result.QueryBuilder.LambdaExpressions.Index = QueryBuilder.LambdaExpressions.Index++; + result.QueryBuilder.IsCrossQueryWithAttr = QueryBuilder.IsCrossQueryWithAttr; if (this.Context.CurrentConnectionConfig.DbType == DbType.Oracle) { result.Select("MergeTable.*"); diff --git a/Src/Asp.Net/SqlSugar/Interface/IDbFirst.cs b/Src/Asp.Net/SqlSugar/Interface/IDbFirst.cs index 7654a35b5..e1caa9c35 100644 --- a/Src/Asp.Net/SqlSugar/Interface/IDbFirst.cs +++ b/Src/Asp.Net/SqlSugar/Interface/IDbFirst.cs @@ -26,5 +26,6 @@ namespace SqlSugar void Init(); IDbFirst FormatFileName(Func formatFileNameFunc); IDbFirst StringNullable(); + IDbFirst CreatedReplaceClassString(Func replaceClassStringFunc); } }