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)
{
paramters.IsArray = true;
if (item.Value == null || item.Value == DBNull.Value)
{
ArrayNull(item,paramters);
}
}
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()
{
InsertBuilder.EntityInfo = this.EntityInfo;

View File

@ -402,21 +402,9 @@ namespace SqlSugar
if (item.IsArray)
{
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;
}
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;
ArrayNull(item, parameter);
}
}
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));
}
}
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)
{
if (!IsMappingColumns)