Update sqlite bulkcopy bug

This commit is contained in:
sunkaixuan
2022-07-30 19:28:58 +08:00
parent ce39c21098
commit 2a4b430089
2 changed files with 8 additions and 3 deletions

View File

@@ -64,6 +64,7 @@ namespace SqlSugar
dt.TableName = GetTableName(); dt.TableName = GetTableName();
var columns = entityInfo.Columns; var columns = entityInfo.Columns;
var isMySql = this.context.CurrentConnectionConfig.DbType.IsIn(DbType.MySql, DbType.MySqlConnector); var isMySql = this.context.CurrentConnectionConfig.DbType.IsIn(DbType.MySql, DbType.MySqlConnector);
var isSqliteCore = SugarCompatible.IsFramework==false&& this.context.CurrentConnectionConfig.DbType.IsIn(DbType.Sqlite);
foreach (var item in datas) foreach (var item in datas)
{ {
var dr = dt.NewRow(); var dr = dt.NewRow();
@@ -86,6 +87,10 @@ namespace SqlSugar
value = DBNull.Value; value = DBNull.Value;
} }
} }
else if (isSqliteCore&&column.UnderType == UtilConstants.StringType && value is bool)
{
value = "isSqliteCore_"+value.ObjToString();
}
else if (column.UnderType == UtilConstants.DateTimeOffsetType && value != null && value != DBNull.Value) else if (column.UnderType == UtilConstants.DateTimeOffsetType && value != null && value != DBNull.Value)
{ {
if (builder.DbFastestProperties != null && builder.DbFastestProperties.HasOffsetTime == true) if (builder.DbFastestProperties != null && builder.DbFastestProperties.HasOffsetTime == true)

View File

@@ -135,12 +135,12 @@ namespace SqlSugar
private static bool IsBoolFalse(DataRow dataRow, DataColumn item) private static bool IsBoolFalse(DataRow dataRow, DataColumn item)
{ {
return dataRow[item.ColumnName] != null && dataRow[item.ColumnName] is string && dataRow[item.ColumnName].ToString().IsIn(false.ToString()); return dataRow[item.ColumnName] != null && dataRow[item.ColumnName] is string && dataRow[item.ColumnName].ToString()==("isSqliteCore_False");
} }
private static bool IsBoolTrue(DataRow dataRow, DataColumn item) private static bool IsBoolTrue(DataRow dataRow, DataColumn item)
{ {
return dataRow[item.ColumnName] != null && dataRow[item.ColumnName] is string && dataRow[item.ColumnName].ToString().IsIn(true.ToString()); return dataRow[item.ColumnName] != null && dataRow[item.ColumnName] is string && dataRow[item.ColumnName].ToString()==("isSqliteCore_True");
} }
private static void Open(SqliteConnection cn) private static void Open(SqliteConnection cn)