Synchronization code

This commit is contained in:
sunkaixuan 2023-03-26 12:51:14 +08:00
parent 724b8278d2
commit e68d725bf7
2 changed files with 48 additions and 14 deletions

View File

@ -123,6 +123,11 @@ namespace SqlSugar
if (item.IsArray) if (item.IsArray)
{ {
paramters.IsArray = true; paramters.IsArray = true;
if (item.Value == null || item.Value == DBNull.Value)
{
ArrayNull(item,paramters);
}
} }
if (item.Value == null && isDic) if (item.Value == null && isDic)
{ {
@ -137,6 +142,26 @@ namespace SqlSugar
} }
} }
} }
private static void ArrayNull(DbColumnInfo item, SugarParameter parameter)
{
if (item.PropertyType.IsIn(typeof(Guid[]), typeof(Guid?[])))
{
parameter.DbType = System.Data.DbType.Guid;
}
else if (item.PropertyType.IsIn(typeof(int[]), typeof(int?[])))
{
parameter.DbType = System.Data.DbType.Int32;
}
else if (item.PropertyType.IsIn(typeof(long[]), typeof(long?[])))
{
parameter.DbType = System.Data.DbType.Int64;
}
else if (item.PropertyType.IsIn(typeof(short[]), typeof(short?[])))
{
parameter.DbType = System.Data.DbType.Int16;
}
}
internal void Init() internal void Init()
{ {
InsertBuilder.EntityInfo = this.EntityInfo; InsertBuilder.EntityInfo = this.EntityInfo;

View File

@ -402,21 +402,9 @@ namespace SqlSugar
if (item.IsArray) if (item.IsArray)
{ {
parameter.IsArray = true; parameter.IsArray = true;
if (item.PropertyType.IsIn(typeof(Guid[]), typeof(Guid?[]))) if (parameter.Value == null || parameter.Value == DBNull.Value)
{ {
parameter.DbType = System.Data.DbType.Guid; ArrayNull(item, parameter);
}
else if (item.PropertyType.IsIn(typeof(int[]), typeof(int?[])))
{
parameter.DbType = System.Data.DbType.Int32;
}
else if (item.PropertyType.IsIn(typeof(long[]), typeof(long?[])))
{
parameter.DbType = System.Data.DbType.Int64;
}
else if (item.PropertyType.IsIn(typeof(short[]), typeof(short?[])))
{
parameter.DbType = System.Data.DbType.Int16;
} }
} }
if (item.Value == null && isDic) if (item.Value == null && isDic)
@ -462,6 +450,27 @@ namespace SqlSugar
this.UpdateBuilder.Parameters.RemoveAll(it => this.UpdateBuilder.SetValues.Any(v => (SqlBuilder.SqlParameterKeyWord + SqlBuilder.GetNoTranslationColumnName(v.Key)) == it.ParameterName)); this.UpdateBuilder.Parameters.RemoveAll(it => this.UpdateBuilder.SetValues.Any(v => (SqlBuilder.SqlParameterKeyWord + SqlBuilder.GetNoTranslationColumnName(v.Key)) == it.ParameterName));
} }
} }
private static void ArrayNull(DbColumnInfo item, SugarParameter parameter)
{
if (item.PropertyType.IsIn(typeof(Guid[]), typeof(Guid?[])))
{
parameter.DbType = System.Data.DbType.Guid;
}
else if (item.PropertyType.IsIn(typeof(int[]), typeof(int?[])))
{
parameter.DbType = System.Data.DbType.Int32;
}
else if (item.PropertyType.IsIn(typeof(long[]), typeof(long?[])))
{
parameter.DbType = System.Data.DbType.Int64;
}
else if (item.PropertyType.IsIn(typeof(short[]), typeof(short?[])))
{
parameter.DbType = System.Data.DbType.Int16;
}
}
private string GetDbColumnName(string propertyName) private string GetDbColumnName(string propertyName)
{ {
if (!IsMappingColumns) if (!IsMappingColumns)