mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-04-24 18:04:52 +08:00
Oracle bulkCopy
This commit is contained in:
parent
1045212056
commit
c3ecc8c802
@ -42,7 +42,8 @@ namespace OrmTest
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
//db.DbMaintenance.DropTable("TESTFAST11");
|
||||
//db.DbMaintenance.TruncateTable<TestFAST11>();
|
||||
db.CodeFirst.InitTables<TestFAST11>();
|
||||
//db.Insertable<TestFAST11>(new List<TestFAST11>() {
|
||||
// new TestFAST11(){ Date=DateTime.Now, Id=Guid.NewGuid()+"", Sex=1 , }
|
||||
@ -50,13 +51,14 @@ namespace OrmTest
|
||||
//db.Fastest<TestFAST11>().BulkCopy(new List<TestFAST11>() {
|
||||
// new TestFAST11(){ Date=DateTime.Now, Id=Guid.NewGuid()+"", Sex=1 , }
|
||||
//});
|
||||
var data = new List<TestFAST11>() {
|
||||
new TestFAST11(){ Date=DateTime.Now, Id=Guid.NewGuid()+"", Sex=1 }
|
||||
};
|
||||
|
||||
//db.Updateable(data).ExecuteCommand();
|
||||
db.Fastest<TestFAST11>().BulkCopy(data);
|
||||
var x = db.Queryable<TestFAST11>().ToList();
|
||||
|
||||
for (int i = 0; i < 2; i++)
|
||||
{
|
||||
db.Fastest<TestFAST11>().BulkCopy(new List<TestFAST11> { new TestFAST11() { Date = DateTime.Now, Id = Guid.NewGuid() + "", Sex = 1 } });
|
||||
var x = db.Queryable<TestFAST11>().ToList();
|
||||
var updaterows = db.Fastest<TestFAST11>().BulkUpdate(x);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -34,6 +34,7 @@ namespace OrmTest
|
||||
}
|
||||
public static void Init()
|
||||
{
|
||||
Bulk();
|
||||
CodeFirst();
|
||||
Updateable();
|
||||
Json();
|
||||
|
117
Src/Asp.NetCore2/SqlSeverTest/OracleTest/UnitTest/UBulkCopy.cs
Normal file
117
Src/Asp.NetCore2/SqlSeverTest/OracleTest/UnitTest/UBulkCopy.cs
Normal file
@ -0,0 +1,117 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace OrmTest
|
||||
{
|
||||
public partial class NewUnitTest
|
||||
{
|
||||
public static void Bulk()
|
||||
{
|
||||
Db.CodeFirst.InitTables<UnitIdentity1>();
|
||||
Db.DbMaintenance.TruncateTable<UnitIdentity1>();
|
||||
var data1 = new UnitIdentity1()
|
||||
{
|
||||
Name = "a",
|
||||
Id = 1
|
||||
};
|
||||
var data2 = new UnitIdentity1()
|
||||
{
|
||||
Name = "b",
|
||||
Id = 2
|
||||
};
|
||||
var data3 = new UnitIdentity1()
|
||||
{
|
||||
Name = "c",
|
||||
Id = 3
|
||||
};
|
||||
Db.Fastest<UnitIdentity1>().BulkCopy(new List<UnitIdentity1>() {
|
||||
data1
|
||||
});
|
||||
var list = Db.Queryable<UnitIdentity1>().ToList();
|
||||
if (list.Count != 1 || data1.Name != list.First().Name)
|
||||
{
|
||||
throw new Exception("unit Bulk");
|
||||
}
|
||||
|
||||
Db.Fastest<UnitIdentity1>().BulkCopy(new List<UnitIdentity1>() {
|
||||
data2,
|
||||
data3
|
||||
});
|
||||
list = Db.Queryable<UnitIdentity1>().ToList();
|
||||
if (list.Count != 3 || !list.Any(it => it.Name == "c"))
|
||||
{
|
||||
throw new Exception("unit Bulk");
|
||||
}
|
||||
var xx=Db.Fastest<UnitIdentity1>().BulkUpdate(new List<UnitIdentity1>() {
|
||||
new UnitIdentity1(){
|
||||
Id=1,
|
||||
Name="222"
|
||||
},
|
||||
new UnitIdentity1(){
|
||||
Id=2,
|
||||
Name="111"
|
||||
}
|
||||
});
|
||||
list = Db.Queryable<UnitIdentity1>().ToList();
|
||||
if (list.First(it => it.Id == 1).Name != "222")
|
||||
{
|
||||
throw new Exception("unit Bulk");
|
||||
}
|
||||
if (list.First(it => it.Id == 2).Name != "111")
|
||||
{
|
||||
throw new Exception("unit Bulk");
|
||||
}
|
||||
if (list.First(it => it.Id == 3).Name != "c")
|
||||
{
|
||||
throw new Exception("unit Bulk");
|
||||
}
|
||||
Db.CodeFirst.InitTables<UnitIdentity111>();
|
||||
Db.DbMaintenance.TruncateTable<UnitIdentity111>();
|
||||
var count = Db.Fastest<UnitIdentity111111111>().AS("UnitIdentity111").BulkCopy(new List<UnitIdentity111111111> {
|
||||
new UnitIdentity111111111(){ Id=1, Name="jack" }
|
||||
});
|
||||
if (count == 0)
|
||||
{
|
||||
throw new Exception("unit Bulk");
|
||||
}
|
||||
count = Db.Fastest<UnitIdentity111111111>().AS("UnitIdentity111").BulkUpdate(new List<UnitIdentity111111111> {
|
||||
new UnitIdentity111111111(){ Id=1, Name="jack" }
|
||||
});
|
||||
if (count == 0)
|
||||
{
|
||||
throw new Exception("unit Bulk");
|
||||
}
|
||||
Db.CodeFirst.InitTables<UnitTable001>();
|
||||
Db.Fastest<UnitTable001>().BulkUpdate(new List<UnitTable001> {
|
||||
new UnitTable001(){ Id=1, table="a" }
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
public class UnitTable001
|
||||
{
|
||||
[SqlSugar.SugarColumn(IsPrimaryKey = true)]
|
||||
public int Id { get; set; }
|
||||
public string table { get; set; }
|
||||
}
|
||||
|
||||
public class UnitIdentity111
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public string Name { get; set; }
|
||||
}
|
||||
public class UnitIdentity111111111
|
||||
{
|
||||
[SqlSugar.SugarColumn(IsPrimaryKey = true)]
|
||||
public int Id { get; set; }
|
||||
public string Name { get; set; }
|
||||
}
|
||||
public class UnitIdentity1
|
||||
{
|
||||
[SqlSugar.SugarColumn(IsPrimaryKey = true)]
|
||||
public int Id { get; set; }
|
||||
public string Name { get; set; }
|
||||
}
|
||||
}
|
@ -22,10 +22,11 @@ namespace SqlSugar
|
||||
{
|
||||
//await Task.FromResult(0);
|
||||
//throw new Exception("Oracle no support BulkUpdate");
|
||||
var oldTableName = dt.TableName;
|
||||
var columns = this.Context.EntityMaintenance.GetEntityInfo<T>().Columns.Where(it => it.IsPrimarykey).Select(it => it.DbColumnName).ToArray();
|
||||
dt.TableName = "T" + SnowFlakeSingle.instance.getID().ToString().Substring(4, 10);
|
||||
var sql = this.Context.Queryable<T>().Where(it => false).Select("*").ToSql().Key;
|
||||
await this.Context.Ado.ExecuteCommandAsync($"create global temporary table {dt.TableName} as {sql} ");
|
||||
dt.TableName = "Temp" + SnowFlakeSingle.instance.getID().ToString();
|
||||
var sql = this.Context.Queryable<T>().AS(oldTableName).Where(it => false).Select("*").ToSql().Key;
|
||||
await this.Context.Ado.ExecuteCommandAsync($"create table {dt.TableName} as {sql} ");
|
||||
this.Context.DbMaintenance.AddPrimaryKeys(dt.TableName, columns);
|
||||
//var xxx = this.Context.Queryable<T>().AS(dt.TableName).ToList();
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user