support bulk insert for binary in sql ce. Fix column ordering in contentnudto.

This commit is contained in:
nzdev
2021-02-12 15:01:46 +13:00
parent 55a39613c1
commit 2a8d043445
3 changed files with 22 additions and 4 deletions

View File

@@ -28,11 +28,13 @@ namespace Umbraco.Core.Persistence.Dtos
[NullSetting(NullSetting = NullSettings.Null)]
public string Data { get; set; }
[Column("rv")]
public long Rv { get; set; }
[Column("dataRaw")]
[NullSetting(NullSetting = NullSettings.Null)]
public byte[] RawData { get; set; }
[Column("rv")]
public long Rv { get; set; }
}
}

View File

@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlServerCe;
using System.Data.SqlTypes;
using System.Linq;
using NPoco;
using Umbraco.Core.Persistence.SqlSyntax;
@@ -210,7 +211,15 @@ namespace Umbraco.Core.Persistence
if (IncludeColumn(pocoData, columns[i]))
{
var val = columns[i].Value.GetValue(record);
updatableRecord.SetValue(i, val);
if (val is byte[])
{
var bytes = val as byte[];
updatableRecord.SetSqlBinary(i, new SqlBinary(bytes));
}
else
{
updatableRecord.SetValue(i, val);
}
}
}
resultSet.Insert(updatableRecord);

View File

@@ -261,6 +261,13 @@ where table_name=@0 and column_name=@1", tableName, columnName).FirstOrDefault()
return "NTEXT";
return base.GetSpecialDbType(dbTypes);
}
public override SqlDbType GetSqlDbType(DbType dbType)
{
if (DbType.Binary == dbType)
{
return SqlDbType.Image;
}
return base.GetSqlDbType(dbType);
}
}
}