Synchronization code

This commit is contained in:
sunkaixuan 2025-02-13 14:06:24 +08:00
parent be65f4fdb4
commit 26e6c213df
7 changed files with 40 additions and 7 deletions

View File

@ -183,10 +183,20 @@ namespace SqlSugar
{
sqlParameter.DmSqlType = DmDbType.Cursor;
}
if (IsSpOutPutParameter(sqlParameter))
{
sqlParameter.ParameterName = sqlParameter.ParameterName.Replace("@", ":");
}
++index;
}
return result;
}
private bool IsSpOutPutParameter(DmParameter sqlParameter)
{
return sqlParameter.Direction == ParameterDirection.Output && this.CommandType == CommandType.StoredProcedure;
}
private static string[] KeyWord =new string []{ "@month", ":month", ":day","@day","@group", ":group",":index", "@index", "@order", ":order", "@user", "@level", ":user", ":level",":type","@type", ":year", "@year" };
private static string ReplaceKeyWordParameterName(string sql, SugarParameter[] parameters)
{

View File

@ -182,6 +182,10 @@ namespace SqlSugar
}
public override string DateValue(MethodCallExpressionModel model)
{
if (IsSqlServerModel(model))
{
return base.DateValue(model);
}
var parameter = model.Args[0];
var parameter2 = model.Args[1];
var format = "dd";
@ -361,6 +365,10 @@ namespace SqlSugar
public override string ToString(MethodCallExpressionModel model)
{
var parameter = model.Args[0];
if (IsSqlServerModel(model))
{
return base.ToString(model);
}
return string.Format(" CAST({0} AS VARCHAR)", parameter.MemberName);
}

View File

@ -38,7 +38,10 @@ namespace SqlSugar
{
csharpTypeName = csharpTypeName.Replace("mssql_", "");
}
else if (csharpTypeName?.StartsWith("sys.") == true)
{
csharpTypeName = csharpTypeName.Replace("sys.", "");
}
return csharpTypeName;
}

View File

@ -30,8 +30,11 @@ namespace SqlSugar
col_description(pclass.oid, pcolumn.ordinal_position) as ColumnDescription,
case when pkey.colname = pcolumn.column_name
then true else false end as IsPrimaryKey,
case when pcolumn.column_default like 'nextval%'
then true else false end as IsIdentity,
CASE
WHEN (current_setting('server_version_num')::INT >= 100000 AND pcolumn.is_identity = 'YES') THEN true
WHEN pcolumn.column_default LIKE 'nextval%' THEN true
ELSE false
END AS IsIdentity,
case when pcolumn.is_nullable = 'YES'
then true else false end as IsNullable
from (select * from pg_tables where upper(tablename) = upper('{0}') and schemaname='" + schema + @"') ptables inner join pg_class pclass

View File

@ -244,7 +244,7 @@ namespace SqlSugar
{
var parameter = model.Args[0];
var parameter2 = model.Args[1];
var parameter2Info = model.Parameters.FirstOrDefault(it => it.ParameterName.EqualCase(parameter2.MemberName + ""));
var parameter2Info = model.Parameters?.FirstOrDefault(it => it.ParameterName.EqualCase(parameter2.MemberName + ""));
if (parameter2Info!=null&&parameter2.MemberName?.ToString()?.StartsWith("@MethodConst")==true)
{
parameter2Info.Value = parameter2.MemberValue+"%";
@ -257,7 +257,7 @@ namespace SqlSugar
{
var parameter = model.Args[0];
var parameter2 = model.Args[1];
var parameter2Info = model.Parameters.FirstOrDefault(it => it.ParameterName.EqualCase(parameter2.MemberName + ""));
var parameter2Info = model.Parameters?.FirstOrDefault(it => it.ParameterName.EqualCase(parameter2.MemberName + ""));
if (parameter2Info != null && parameter2.MemberName?.ToString()?.StartsWith("@MethodConst") == true)
{
parameter2Info.Value = "%"+parameter2.MemberValue ;
@ -494,6 +494,15 @@ namespace SqlSugar
return $" {model.Args[0].MemberName}::jsonb @> '[\"{model.Args[1].MemberValue}\"]'::jsonb ";
}
}
public override string GetStringJoinSelector(string result, string separator)
{
if (result?.ToLower()?.Contains("distinct") == true)
{
return $"string_agg({result},'{separator}') ";
}
return $"string_agg(({result})::text,'{separator}') ";
}
public override string JsonListObjectAny(MethodCallExpressionModel model)
{
if (UtilMethods.IsNumber(model.Args[2].MemberValue.GetType().Name))

View File

@ -131,7 +131,7 @@ namespace SqlSugar
var type = value.GetType();
if (type == UtilConstants.ByteArrayType||type == UtilConstants.DateType || columnInfo.IsArray || columnInfo.IsJson)
{
var parameterName = this.Builder.SqlParameterKeyWord + name + i;
var parameterName = this.Builder.SqlParameterKeyWord + name+"_" + i;
var paramter = new SugarParameter(parameterName, value);
if (columnInfo.IsJson)
{

View File

@ -45,7 +45,7 @@ namespace SqlSugar
var type =UtilMethods.GetUnderType(value.GetType());
if (type == UtilConstants.ByteArrayType||type == UtilConstants.DateType||columnInfo.IsArray||columnInfo.IsJson)
{
var parameterName = this.Builder.SqlParameterKeyWord + name + i;
var parameterName = this.Builder.SqlParameterKeyWord + name +"_"+ i;
var paramter = new SugarParameter(parameterName, value);
if (columnInfo.IsJson)
{