using SqlSugar;
using System;
using System.Data;
namespace OrmTest
{
internal class Unitdfaafas
{
///
/// 测试案例: BulkCopy中Datatable列名如果有空格报错
///
///
public static void Init()
{
var Db = NewUnitTest.Db;
Db.DbMaintenance.CreateDatabase();
Db.CurrentConnectionConfig.MoreSettings = new ConnMoreSettings() {
IsCorrectErrorSqlParameterName=true
};
var datatable = new DataTable();
datatable.Columns.Add("Name", typeof(string));
datatable.Columns.Add("Name 1", typeof(string));//列名有空格
for (int i = 0; i < 10; i++)
{
var row = datatable.NewRow();
row["Name"] = "Name" + i;
row["Name 1"] = "Name 1" + i;
datatable.Rows.Add(row);
}
var tableName = "Testaaaa";
var dynamicProperyBuilder = Db.DynamicBuilder().CreateClass(tableName, new SugarTable());
dynamicProperyBuilder.CreateProperty("Id", typeof(int), new SugarColumn()
{
IsPrimaryKey = true,
IsIdentity = true
});
foreach (DataColumn datatableColumn in datatable.Columns)
{
dynamicProperyBuilder.CreateProperty(datatableColumn.ColumnName.Replace(" ",""), typeof(string), new SugarColumn()
{
ColumnDataType = StaticConfig.CodeFirst_BigString,
ColumnName = datatableColumn.ColumnName,
IsNullable = true
});
}
var dynamicClass = dynamicProperyBuilder.BuilderType();
Db.CodeFirst.InitTables(dynamicClass);
//BulkCopy中Datatable列名如果有空格会报错!
var result = Db.Fastest().AS(tableName).BulkCopy(datatable);
}
}
}