Browse Source

Update core

pull/11/head
sunkaixuna 3 years ago
parent
commit
72e829f4b7
  1. 2
      Src/Asp.Net/SqlSugar/Abstract/CodeFirstProvider/SplitCodeFirstProvider.cs
  2. 18
      Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Abstract/FastestProvider/FastestProvider.cs
  3. 2
      Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Abstract/FastestProvider/Private.cs
  4. 3
      Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Abstract/SaveableProvider/Storageable.cs
  5. 23
      Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Interface/IStorageable.cs

2
Src/Asp.Net/SqlSugar/Abstract/CodeFirstProvider/SplitCodeFirstProvider.cs

@ -41,7 +41,7 @@ namespace SqlSugar
this.Context.MappingTables.Add(helper.EntityInfo.EntityName, helper.EntityInfo.DbTableName); this.Context.MappingTables.Add(helper.EntityInfo.EntityName, helper.EntityInfo.DbTableName);
} }
public void InitTables<T>(Type [] types) public void InitTables(Type [] types)
{ {
foreach (var type in types) foreach (var type in types)
{ {

18
Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Abstract/FastestProvider/FastestProvider.cs

@ -79,7 +79,7 @@ namespace SqlSugar
#region Core #region Core
private async Task<int> _BulkUpdate(List<T> datas, string[] whereColumns, string[] updateColumns) private async Task<int> _BulkUpdate(List<T> datas, string[] whereColumns, string[] updateColumns)
{ {
Begin(datas); Begin(datas,false);
Check.Exception(whereColumns == null || whereColumns.Count() == 0, "where columns count=0 or need primary key"); Check.Exception(whereColumns == null || whereColumns.Count() == 0, "where columns count=0 or need primary key");
Check.Exception(updateColumns == null || updateColumns.Count() == 0, "set columns count=0"); Check.Exception(updateColumns == null || updateColumns.Count() == 0, "set columns count=0");
var isAuto = this.context.CurrentConnectionConfig.IsAutoCloseConnection; var isAuto = this.context.CurrentConnectionConfig.IsAutoCloseConnection;
@ -94,38 +94,40 @@ namespace SqlSugar
this.context.DbMaintenance.DropTable(dt.TableName); this.context.DbMaintenance.DropTable(dt.TableName);
this.context.CurrentConnectionConfig.IsAutoCloseConnection = isAuto; this.context.CurrentConnectionConfig.IsAutoCloseConnection = isAuto;
buider.CloseDb(); buider.CloseDb();
End(datas); End(datas, false);
return result; return result;
} }
private async Task<int> _BulkCopy(List<T> datas) private async Task<int> _BulkCopy(List<T> datas)
{ {
Begin(datas); Begin(datas,true);
DataTable dt = ToDdateTable(datas); DataTable dt = ToDdateTable(datas);
IFastBuilder buider =GetBuider(); IFastBuilder buider =GetBuider();
buider.Context = context; buider.Context = context;
var result = await buider.ExecuteBulkCopyAsync(dt); var result = await buider.ExecuteBulkCopyAsync(dt);
End(datas); End(datas,true);
return result; return result;
} }
#endregion #endregion
#region AOP #region AOP
private void End(List<T> datas) private void End(List<T> datas,bool isAdd)
{ {
var title = isAdd ? "BulkCopy" : "BulkUpdate";
this.context.Ado.IsEnableLogEvent = isLog; this.context.Ado.IsEnableLogEvent = isLog;
if (this.context.CurrentConnectionConfig?.AopEvents?.OnLogExecuted != null) if (this.context.CurrentConnectionConfig?.AopEvents?.OnLogExecuted != null)
{ {
this.context.CurrentConnectionConfig?.AopEvents?.OnLogExecuted($"End bulkcopy name:{entityInfo.DbTableName} ,count: {datas.Count},current time: {DateTime.Now}" , new SugarParameter[] { }); this.context.CurrentConnectionConfig?.AopEvents?.OnLogExecuted($"End {title} name:{entityInfo.DbTableName} ,count: {datas.Count},current time: {DateTime.Now}" , new SugarParameter[] { });
} }
} }
private void Begin(List<T> datas) private void Begin(List<T> datas,bool isAdd)
{ {
var title = isAdd ? "BulkCopy" : "BulkUpdate";
isLog = this.context.Ado.IsEnableLogEvent; isLog = this.context.Ado.IsEnableLogEvent;
this.context.Ado.IsEnableLogEvent = false; this.context.Ado.IsEnableLogEvent = false;
if (this.context.CurrentConnectionConfig?.AopEvents?.OnLogExecuting != null) if (this.context.CurrentConnectionConfig?.AopEvents?.OnLogExecuting != null)
{ {
this.context.CurrentConnectionConfig?.AopEvents?.OnLogExecuting($"Begin bulkcopy name:{entityInfo.DbTableName} ,count: {datas.Count},current time: {DateTime.Now} ", new SugarParameter[] { }); this.context.CurrentConnectionConfig?.AopEvents?.OnLogExecuting($"Begin {title} name:{entityInfo.DbTableName} ,count: {datas.Count},current time: {DateTime.Now} ", new SugarParameter[] { });
} }
} }
#endregion #endregion

2
Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Abstract/FastestProvider/Private.cs

@ -92,7 +92,7 @@ namespace SqlSugar
private object ValueConverter(EntityColumnInfo columnInfo, object value) private object ValueConverter(EntityColumnInfo columnInfo, object value)
{ {
if (value == null) if (value == null)
return value; return DBNull.Value;
if (value is DateTime && (DateTime)value == DateTime.MinValue) if (value is DateTime && (DateTime)value == DateTime.MinValue)
{ {
value = Convert.ToDateTime("1900-01-01"); value = Convert.ToDateTime("1900-01-01");

3
Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Abstract/SaveableProvider/Storageable.cs

@ -125,6 +125,9 @@ namespace SqlSugar
var other = messageList.Where(it => it.StorageType == StorageType.Other).ToList(); var other = messageList.Where(it => it.StorageType == StorageType.Other).ToList();
StorageableResult<T> result = new StorageableResult<T>() StorageableResult<T> result = new StorageableResult<T>()
{ {
_IsWhereColumn= this.whereExpression != null,
_AsName =asname,
_Context=this.Context,
AsDeleteable = this.Context.Deleteable<T>().AS(asname), AsDeleteable = this.Context.Deleteable<T>().AS(asname),
AsUpdateable = this.Context.Updateable(update.Select(it => it.Item).ToList()).AS(asname), AsUpdateable = this.Context.Updateable(update.Select(it => it.Item).ToList()).AS(asname),
AsInsertable = this.Context.Insertable(inset.Select(it => it.Item).ToList()).AS(asname), AsInsertable = this.Context.Insertable(inset.Select(it => it.Item).ToList()).AS(asname),

23
Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Interface/IStorageable.cs

@ -88,5 +88,28 @@ namespace SqlSugar
public IInsertable<T> AsInsertable { get; set; } public IInsertable<T> AsInsertable { get; set; }
public IUpdateable<T> AsUpdateable { get; set; } public IUpdateable<T> AsUpdateable { get; set; }
public IDeleteable<T> AsDeleteable { get; set; } public IDeleteable<T> AsDeleteable { get; set; }
internal bool _IsWhereColumn { get; set; }
internal string _AsName { get; set; }
internal SqlSugarProvider _Context { get; set; }
public int BulkCopy()
{
return this._Context.Fastest<T>().AS(_AsName).BulkCopy(InsertList.Select(it=>it.Item).ToList());
}
public Task<int> BulkCopyAsync()
{
return this._Context.Fastest<T>().AS(_AsName).BulkCopyAsync(InsertList.Select(it => it.Item).ToList());
}
public int BulkUpdate()
{
Check.Exception(_IsWhereColumn, "Storageable.BulkCopy no support WhereColumns");
return this._Context.Fastest<T>().AS(_AsName).BulkUpdate(UpdateList.Select(it => it.Item).ToList());
}
public Task<int> BulkUpdateAsync()
{
Check.Exception(_IsWhereColumn, "Storageable.BulkCopy no support WhereColumns");
return this._Context.Fastest<T>().AS(_AsName).BulkUpdateAsync(UpdateList.Select(it => it.Item).ToList());
}
} }
} }

Loading…
Cancel
Save