Synchronization code

This commit is contained in:
sunkaixuan 2024-09-06 14:40:20 +08:00
parent 468e3cc649
commit c374a0675b
2 changed files with 43 additions and 4 deletions

View File

@ -1102,6 +1102,7 @@ namespace SqlSugar
sb.Append(" ) ");
}
var result = sb.ToString();
result = result.Replace(" = null)", " is null)");
if (result.IsNullOrEmpty())
{
return " 1=2 ";

View File

@ -132,7 +132,8 @@ namespace SqlSugar
{
var columnInfo = tableColumnList.FirstOrDefault(x => x.DbColumnName.Equals(it.DbColumnName, StringComparison.OrdinalIgnoreCase));
var dbType = columnInfo?.DataType;
if (dbType == null) {
if (dbType == null)
{
var typeName = it.PropertyType.Name.ToLower();
if (typeName == "int32")
typeName = "int";
@ -140,7 +141,7 @@ namespace SqlSugar
typeName = "long";
if (typeName == "int16")
typeName = "short";
if (typeName == "boolean")
if (typeName == "boolean")
typeName = "bool";
var isAnyType = PostgreSQLDbBind.MappingTypesConst.Where(x => x.Value.ToString().ToLower() == typeName).Any();
@ -148,11 +149,38 @@ namespace SqlSugar
{
dbType = PostgreSQLDbBind.MappingTypesConst.Where(x => x.Value.ToString().ToLower() == typeName).FirstOrDefault().Key;
}
else {
else
{
dbType = "varchar";
}
}
return string.Format("CAST({0} AS {1})", base.GetDbColumn(it,FormatValue(it.Value)), dbType);
if (IsMySqlModel())
{
if (dbType == "numeric")
{
dbType = "numeric(18,6)";
}
}
if (IsSqlServerModel())
{
if (dbType == "varchar")
{
dbType = "varchar(max)";
}
else if (dbType == "nvarchar")
{
dbType = "nvarchar(max)";
}
else if (dbType == "char")
{
dbType = "char(8000)";
}
else if (dbType == "nchar")
{
dbType = "nchar(4000)";
}
}
return string.Format("CAST({0} AS {1})", base.GetDbColumn(it, FormatValue(it.Value)), dbType);
})) + ")");
++i;
@ -186,6 +214,16 @@ namespace SqlSugar
return batchUpdateSql.ToString();
}
private bool IsSqlServerModel()
{
return this.Context?.CurrentConnectionConfig?.MoreSettings?.DatabaseModel == DbType.SqlServer;
}
private bool IsMySqlModel()
{
return this.Context?.CurrentConnectionConfig?.MoreSettings?.DatabaseModel == DbType.MySql;
}
private StringBuilder GetBatchUpdateSql(StringBuilder batchUpdateSql)
{
if (ReSetValueBySqlExpListType == null && ReSetValueBySqlExpList != null)