Update bluecopy

This commit is contained in:
skx
2020-10-22 18:23:17 +08:00
parent 61295f3487
commit 8d3a6f8d65
3 changed files with 28 additions and 12 deletions

View File

@@ -31,7 +31,7 @@ namespace OrmTest
}); });
var insertObj = new Order() { Id = 1, Name = "order1",Price=0 }; var insertObj = new Order() { Id = 1, Name = "order1",Price=0 };
var updateObjs = new List<Order> { var insertObjs = new List<Order> {
new Order() { Id = 11, Name = "order11", Price=0 }, new Order() { Id = 11, Name = "order11", Price=0 },
new Order() { Id = 12, Name = "order12" , Price=0} new Order() { Id = 12, Name = "order12" , Price=0}
}; };
@@ -45,11 +45,17 @@ namespace OrmTest
db.Insertable(insertObj).InsertColumns("Name", "Price").ExecuteReturnIdentity(); db.Insertable(insertObj).InsertColumns("Name", "Price").ExecuteReturnIdentity();
//ignore null columns //ignore null columns
db.Insertable(updateObjs).ExecuteCommand();//get change row count db.Insertable(insertObjs).ExecuteCommand();//get change row count
//Use Lock //Use Lock
db.Insertable(insertObj).With(SqlWith.UpdLock).ExecuteCommand(); db.Insertable(insertObj).With(SqlWith.UpdLock).ExecuteCommand();
insertObjs = new List<Order> {
new Order() { Id = 11, Name = "order11", Price=1 },
new Order() { Id = 12, Name = "order12" , Price=20, CreateTime=DateTime.Now, CustomId=1}
};
db.Insertable(insertObjs).UseSqlServer().ExecuteBlueCopy();
Console.WriteLine("#### Insertable End ####"); Console.WriteLine("#### Insertable End ####");
} }
} }

View File

@@ -67,7 +67,6 @@
<Compile Include="Demo\DemoE_CodeFirst.cs" /> <Compile Include="Demo\DemoE_CodeFirst.cs" />
<Compile Include="Demo\DemoF_Utilities.cs" /> <Compile Include="Demo\DemoF_Utilities.cs" />
<Compile Include="Demo\DemoG_SimpleClient.cs" /> <Compile Include="Demo\DemoG_SimpleClient.cs" />
<Compile Include="Demo\student.cs" />
<Compile Include="Models\Custom.cs" /> <Compile Include="Models\Custom.cs" />
<Compile Include="Models\EntityMapper.cs" /> <Compile Include="Models\EntityMapper.cs" />
<Compile Include="Models\Mapper.cs" /> <Compile Include="Models\Mapper.cs" />

View File

@@ -17,24 +17,35 @@ namespace SqlSugar
public int ExecuteBlueCopy() public int ExecuteBlueCopy()
{ {
if (DbColumnInfoList==null||DbColumnInfoList.Count == 0) return 0; if (DbColumnInfoList==null||DbColumnInfoList.Count == 0) return 0;
DataTable dt = new DataTable();
var columns = DbColumnInfoList.First().Select(it => it.DbColumnName ).ToList(); var dt= this.Context.Ado.GetDataTable("select top 0 * from " + InsertBuilder.GetTableNameString);
foreach (var item in columns)
{
dt.Columns.Add(item);
}
foreach (var rowInfos in DbColumnInfoList) foreach (var rowInfos in DbColumnInfoList)
{ {
var dr = dt.NewRow(); var dr = dt.NewRow();
foreach (var item in rowInfos.ToList()) foreach (DataColumn item in dt.Columns)
{ {
dr[item.DbColumnName] = item.Value; var rows= rowInfos.ToList();
var value = rows.FirstOrDefault(it =>
it.DbColumnName.Equals(item.ColumnName, StringComparison.CurrentCultureIgnoreCase)||
it.PropertyName.Equals(item.ColumnName, StringComparison.CurrentCultureIgnoreCase)
);
if (value != null)
{
if (value.Value != null && UtilMethods.GetUnderType(value.Value.GetType()) == UtilConstants.DateType)
{
if (value.Value != null && value.Value.ToString() == DateTime.MinValue.ToString())
{
value.Value = Convert.ToDateTime("1753/01/01");
}
}
dr[item.ColumnName] = value.Value;
}
} }
dt.Rows.Add(dr); dt.Rows.Add(dr);
} }
SqlBulkCopy bulkCopy = new SqlBulkCopy(this.Context.Ado.Connection as SqlConnection); SqlBulkCopy bulkCopy = new SqlBulkCopy(this.Context.Ado.Connection as SqlConnection);
//获取目标表的名称 //获取目标表的名称
bulkCopy.DestinationTableName = InsertBuilder.EntityInfo.EntityName; bulkCopy.DestinationTableName = InsertBuilder.GetTableNameString;
//写入DataReader对象 //写入DataReader对象
if (this.Context.Ado.Connection.State == ConnectionState.Closed) if (this.Context.Ado.Connection.State == ConnectionState.Closed)
{ {