mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-08-23 13:06:50 +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.CodeFirst.InitTables<TestFAST11>();
|
||||||
//db.Insertable<TestFAST11>(new List<TestFAST11>() {
|
//db.Insertable<TestFAST11>(new List<TestFAST11>() {
|
||||||
// new TestFAST11(){ Date=DateTime.Now, Id=Guid.NewGuid()+"", Sex=1 , }
|
// new TestFAST11(){ Date=DateTime.Now, Id=Guid.NewGuid()+"", Sex=1 , }
|
||||||
@ -50,13 +51,14 @@ namespace OrmTest
|
|||||||
//db.Fastest<TestFAST11>().BulkCopy(new List<TestFAST11>() {
|
//db.Fastest<TestFAST11>().BulkCopy(new List<TestFAST11>() {
|
||||||
// new TestFAST11(){ Date=DateTime.Now, Id=Guid.NewGuid()+"", Sex=1 , }
|
// 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.Updateable(data).ExecuteCommand();
|
||||||
db.Fastest<TestFAST11>().BulkCopy(data);
|
for (int i = 0; i < 2; i++)
|
||||||
var x = db.Queryable<TestFAST11>().ToList();
|
{
|
||||||
|
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()
|
public static void Init()
|
||||||
{
|
{
|
||||||
|
Bulk();
|
||||||
CodeFirst();
|
CodeFirst();
|
||||||
Updateable();
|
Updateable();
|
||||||
Json();
|
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);
|
//await Task.FromResult(0);
|
||||||
//throw new Exception("Oracle no support BulkUpdate");
|
//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();
|
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);
|
dt.TableName = "Temp" + SnowFlakeSingle.instance.getID().ToString();
|
||||||
var sql = this.Context.Queryable<T>().Where(it => false).Select("*").ToSql().Key;
|
var sql = this.Context.Queryable<T>().AS(oldTableName).Where(it => false).Select("*").ToSql().Key;
|
||||||
await this.Context.Ado.ExecuteCommandAsync($"create global temporary table {dt.TableName} as {sql} ");
|
await this.Context.Ado.ExecuteCommandAsync($"create table {dt.TableName} as {sql} ");
|
||||||
this.Context.DbMaintenance.AddPrimaryKeys(dt.TableName, columns);
|
this.Context.DbMaintenance.AddPrimaryKeys(dt.TableName, columns);
|
||||||
//var xxx = this.Context.Queryable<T>().AS(dt.TableName).ToList();
|
//var xxx = this.Context.Queryable<T>().AS(dt.TableName).ToList();
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user