Update db.Fastest

This commit is contained in:
sunkaixuna 2021-11-21 02:44:06 +08:00
parent 66a3925dc7
commit 3d9479fd1b
2 changed files with 13 additions and 1 deletions

View File

@ -20,7 +20,7 @@ namespace SqlSugar
case DbType.Sqlite: case DbType.Sqlite:
break; break;
case DbType.Oracle: case DbType.Oracle:
return new OracleFastBuilder(); return new OracleFastBuilder(this.entityInfo);
case DbType.PostgreSQL: case DbType.PostgreSQL:
return new PostgreSQLFastBuilder(this.entityInfo); return new PostgreSQLFastBuilder(this.entityInfo);
case DbType.Dm: case DbType.Dm:

View File

@ -10,6 +10,13 @@ namespace SqlSugar
{ {
public class OracleFastBuilder : FastBuilder, IFastBuilder public class OracleFastBuilder : FastBuilder, IFastBuilder
{ {
private EntityInfo entityInfo;
public OracleFastBuilder(EntityInfo entityInfo)
{
this.entityInfo = entityInfo;
}
public override string UpdateSql { get; set; } = "UPDATE (SELECT A.NAME ANAME,B.NAME BNAME FROM A,B WHERE A.ID=B.ID)SET ANAME = BNAME;"; public override string UpdateSql { get; set; } = "UPDATE (SELECT A.NAME ANAME,B.NAME BNAME FROM A,B WHERE A.ID=B.ID)SET ANAME = BNAME;";
public override async Task CreateTempAsync<T>(DataTable dt) public override async Task CreateTempAsync<T>(DataTable dt)
{ {
@ -51,6 +58,11 @@ namespace SqlSugar
} }
public Task<int> ExecuteBulkCopyAsync(DataTable dt) public Task<int> ExecuteBulkCopyAsync(DataTable dt)
{ {
var identityColumnInfo = this.entityInfo.Columns.FirstOrDefault(it => it.IsIdentity);
if (identityColumnInfo != null)
{
throw new Exception("Oracle bulkcopy no support identity");
}
OracleBulkCopy copy = GetBulkCopyInstance(); OracleBulkCopy copy = GetBulkCopyInstance();
try try
{ {