mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2026-01-09 09:55:05 +08:00
Synchronization code
This commit is contained in:
@@ -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)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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&¶meter2.MemberName?.ToString()?.StartsWith("@MethodConst")==true)
|
if (parameter2Info!=null&¶meter2.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))
|
||||||
|
|||||||
@@ -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)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user