mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-10-15 18:55:07 +08:00
Synchronization code
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Linq.Expressions;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
@@ -99,7 +100,16 @@ namespace SqlSugar
|
||||
name = column.PropertyName;
|
||||
}
|
||||
var value = ValueConverter(column, PropertyCallAdapterProvider<T>.GetInstance(column.PropertyName).InvokeGet(item));
|
||||
if (isMySql && column.UnderType == UtilConstants.BoolType)
|
||||
if (column.SqlParameterDbType != null&& column.SqlParameterDbType is Type && UtilMethods.HasInterface((Type)column.SqlParameterDbType, typeof(ISugarDataConverter)))
|
||||
{
|
||||
var columnInfo = column;
|
||||
var type = columnInfo.SqlParameterDbType as Type;
|
||||
var ParameterConverter = type.GetMethod("ParameterConverter").MakeGenericMethod(columnInfo.PropertyInfo.PropertyType);
|
||||
var obj = Activator.CreateInstance(type);
|
||||
var p = ParameterConverter.Invoke(obj, new object[] { value, 100 }) as SugarParameter;
|
||||
value = p.Value;
|
||||
}
|
||||
else if (isMySql && column.UnderType == UtilConstants.BoolType)
|
||||
{
|
||||
|
||||
if (value.ObjToBool() == false&& uInt64TypeName.Any(z=>z.EqualCase(column.DbColumnName)))
|
||||
@@ -126,6 +136,14 @@ namespace SqlSugar
|
||||
value = UtilMethods.ConvertFromDateTimeOffset((DateTimeOffset)value);
|
||||
}
|
||||
}
|
||||
else if (value != null && column.UnderType?.FullName == "System.TimeOnly")
|
||||
{
|
||||
value = UtilMethods.TimeOnlyToTimeSpan(value);
|
||||
}
|
||||
else if (value != null && column.UnderType?.FullName == "System.DateOnly")
|
||||
{
|
||||
value = UtilMethods.DateOnlyToDateTime(value);
|
||||
}
|
||||
dr[name] = value;
|
||||
}
|
||||
dt.Rows.Add(dr);
|
||||
|
@@ -18,6 +18,15 @@ namespace SqlSugar
|
||||
{
|
||||
public class UtilMethods
|
||||
{
|
||||
public static bool HasInterface(Type targetType, Type interfaceType)
|
||||
{
|
||||
if (targetType == null || interfaceType == null || !interfaceType.IsInterface)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return interfaceType.IsAssignableFrom(targetType);
|
||||
}
|
||||
public static void ClearPublicProperties<T>(T obj,EntityInfo entity)
|
||||
{
|
||||
if (obj == null)
|
||||
|
Reference in New Issue
Block a user