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; sqlParameter.DmSqlType = DmDbType.Cursor;
} }
if (IsSpOutPutParameter(sqlParameter))
{
sqlParameter.ParameterName = sqlParameter.ParameterName.Replace("@", ":");
}
++index; ++index;
} }
return result; 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[] 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) private static string ReplaceKeyWordParameterName(string sql, SugarParameter[] parameters)
{ {

View File

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

View File

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

View File

@@ -30,8 +30,11 @@ namespace SqlSugar
col_description(pclass.oid, pcolumn.ordinal_position) as ColumnDescription, col_description(pclass.oid, pcolumn.ordinal_position) as ColumnDescription,
case when pkey.colname = pcolumn.column_name case when pkey.colname = pcolumn.column_name
then true else false end as IsPrimaryKey, then true else false end as IsPrimaryKey,
case when pcolumn.column_default like 'nextval%' CASE
then true else false end as IsIdentity, 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' case when pcolumn.is_nullable = 'YES'
then true else false end as IsNullable 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 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 parameter = model.Args[0];
var parameter2 = model.Args[1]; 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) if (parameter2Info!=null&&parameter2.MemberName?.ToString()?.StartsWith("@MethodConst")==true)
{ {
parameter2Info.Value = parameter2.MemberValue+"%"; parameter2Info.Value = parameter2.MemberValue+"%";
@@ -257,7 +257,7 @@ namespace SqlSugar
{ {
var parameter = model.Args[0]; var parameter = model.Args[0];
var parameter2 = model.Args[1]; 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) if (parameter2Info != null && parameter2.MemberName?.ToString()?.StartsWith("@MethodConst") == true)
{ {
parameter2Info.Value = "%"+parameter2.MemberValue ; parameter2Info.Value = "%"+parameter2.MemberValue ;
@@ -494,6 +494,15 @@ namespace SqlSugar
return $" {model.Args[0].MemberName}::jsonb @> '[\"{model.Args[1].MemberValue}\"]'::jsonb "; 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) public override string JsonListObjectAny(MethodCallExpressionModel model)
{ {
if (UtilMethods.IsNumber(model.Args[2].MemberValue.GetType().Name)) if (UtilMethods.IsNumber(model.Args[2].MemberValue.GetType().Name))

View File

@@ -131,7 +131,7 @@ namespace SqlSugar
var type = value.GetType(); var type = value.GetType();
if (type == UtilConstants.ByteArrayType||type == UtilConstants.DateType || columnInfo.IsArray || columnInfo.IsJson) 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); var paramter = new SugarParameter(parameterName, value);
if (columnInfo.IsJson) if (columnInfo.IsJson)
{ {

View File

@@ -45,7 +45,7 @@ namespace SqlSugar
var type =UtilMethods.GetUnderType(value.GetType()); var type =UtilMethods.GetUnderType(value.GetType());
if (type == UtilConstants.ByteArrayType||type == UtilConstants.DateType||columnInfo.IsArray||columnInfo.IsJson) 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); var paramter = new SugarParameter(parameterName, value);
if (columnInfo.IsJson) if (columnInfo.IsJson)
{ {