!81 *TDSQLForPG同步PGSQL修改

Merge pull request !81 from 杜子腾/master
This commit is contained in:
阿妮亚 2025-06-24 06:19:53 +00:00 committed by Gitee
commit 066c3239cf
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
2 changed files with 18 additions and 3 deletions

View File

@ -20,7 +20,7 @@ namespace SqlSugar.TDSQLForPGODBC
if (csharpTypeName.ToLower().IsIn("boolean", "bool"))
csharpTypeName = "bool";
if (csharpTypeName == "DateTimeOffset")
csharpTypeName = "DateTime";
return "timestamptz";
var mappings = this.MappingTypes.Where(it => it.Value.ToString().Equals(csharpTypeName, StringComparison.CurrentCultureIgnoreCase)).ToList();
if (mappings != null && mappings.Count > 0)
return mappings.First().Key;

View File

@ -452,6 +452,7 @@ namespace SqlSugar.TDSQLForPGODBC
{
result = GetJson(result, model.Args[5].MemberName, model.Args.Count() == 6);
}
result = ConvertToJsonbIfEnabled(model, result);
return result;
}
@ -478,14 +479,14 @@ namespace SqlSugar.TDSQLForPGODBC
{
var parameter = model.Args[0];
//var parameter1 = model.Args[1];
return $" json_array_length({parameter.MemberName}::json) ";
return ConvertToJsonbIfEnabled(model, $" json_array_length({parameter.MemberName}::json) ");
}
public override string JsonParse(MethodCallExpressionModel model)
{
var parameter = model.Args[0];
//var parameter1 = model.Args[1];
return $" ({parameter.MemberName}::json) ";
return ConvertToJsonbIfEnabled(model, $" ({parameter.MemberName}::json) ");
}
public override string JsonArrayAny(MethodCallExpressionModel model)
@ -519,5 +520,19 @@ namespace SqlSugar.TDSQLForPGODBC
return $" {model.Args[0].MemberName}::jsonb @> '[{{\"{model.Args[1].MemberValue}\":\"{model.Args[2].MemberValue.ObjToStringNoTrim().ToSqlFilter()}\"}}]'::jsonb ";
}
}
private static string ConvertToJsonbIfEnabled(MethodCallExpressionModel model, string result)
{
if (model?.Conext?.SugarContext?.Context is ISqlSugarClient db)
{
if (db.CurrentConnectionConfig?.MoreSettings?.EnableJsonb == true)
{
result = result.Replace("::json", "::jsonb");
}
}
return result;
}
}
}