Update Async validate

This commit is contained in:
sunkaixuan
2018-01-27 11:22:17 +08:00
parent 48d5672c42
commit b20c3aa183
4 changed files with 67 additions and 34 deletions

View File

@@ -42,9 +42,10 @@ namespace SqlSugar
IDeleteable<T> asyncDeleteable = CopyDeleteable();
return asyncDeleteable.ExecuteCommand();
});
result.Start();
TaskStart(result);
return result;
}
public Task<bool> ExecuteCommandHasChangeAsync()
{
Task<bool> result = new Task<bool>(() =>
@@ -52,7 +53,7 @@ namespace SqlSugar
IDeleteable<T> asyncDeleteable = CopyDeleteable();
return asyncDeleteable.ExecuteCommand() > 0;
});
result.Start();
TaskStart(result);
return result;
}
public IDeleteable<T> AS(string tableName)
@@ -271,6 +272,14 @@ namespace SqlSugar
}
}
private void TaskStart<Type>(Task<Type> result)
{
if (this.Context.CurrentConnectionConfig.IsShardSameThread) {
Check.Exception(true, "IsShardSameThread=true can't be used async method");
}
result.Start();
}
private void AutoRemoveDataCache()
{
var moreSetts = this.Context.CurrentConnectionConfig.MoreSettings;

View File

@@ -93,7 +93,7 @@ namespace SqlSugar
IInsertable<T> asyncInsertable = CopyInsertable();
return asyncInsertable.ExecuteCommand();
});
result.Start();
TaskStart(result);
return result;
}
public Task<int> ExecuteReturnIdentityAsync()
@@ -103,7 +103,7 @@ namespace SqlSugar
IInsertable<T> asyncInsertable = CopyInsertable();
return asyncInsertable.ExecuteReturnIdentity();
});
result.Start();
TaskStart(result);
return result;
}
public Task<T> ExecuteReturnEntityAsync()
@@ -113,7 +113,7 @@ namespace SqlSugar
IInsertable<T> asyncInsertable = CopyInsertable();
return asyncInsertable.ExecuteReturnEntity();
});
result.Start();
TaskStart(result);
return result;
}
public Task<bool> ExecuteCommandIdentityIntoEntityAsync()
@@ -123,7 +123,7 @@ namespace SqlSugar
IInsertable<T> asyncInsertable = CopyInsertable();
return asyncInsertable.ExecuteCommandIdentityIntoEntity();
});
result.Start();
TaskStart(result);
return result;
}
public Task<long> ExecuteReturnBigIdentityAsync()
@@ -133,7 +133,7 @@ namespace SqlSugar
IInsertable<T> asyncInsertable = CopyInsertable();
return asyncInsertable.ExecuteReturnBigIdentity();
});
result.Start();
TaskStart(result);
return result;
}
#endregion
@@ -327,6 +327,14 @@ namespace SqlSugar
return this.EntityInfo.Columns.Where(it => it.IsIdentity).Select(it => it.DbColumnName).ToList();
}
}
private void TaskStart<Type>(Task<Type> result)
{
if (this.Context.CurrentConnectionConfig.IsShardSameThread)
{
Check.Exception(true, "IsShardSameThread=true can't be used async method");
}
result.Start();
}
protected void RestoreMapping()
{
if (IsAs)

View File

@@ -658,7 +658,7 @@ namespace SqlSugar
ISugarQueryable<T> asyncQueryable = CopyQueryable();
return asyncQueryable.Single();
});
result.Start();
TaskStart(result);
return result;
}
@@ -669,7 +669,7 @@ namespace SqlSugar
ISugarQueryable<T> asyncQueryable = CopyQueryable();
return asyncQueryable.Single(expression);
});
result.Start();
TaskStart(result);
return result;
}
@@ -680,7 +680,7 @@ namespace SqlSugar
ISugarQueryable<T> asyncQueryable = CopyQueryable();
return asyncQueryable.First();
});
result.Start();
TaskStart(result);
return result;
}
@@ -691,7 +691,7 @@ namespace SqlSugar
ISugarQueryable<T> asyncQueryable = CopyQueryable();
return asyncQueryable.First(expression);
});
result.Start();
TaskStart(result);
return result;
}
@@ -702,7 +702,7 @@ namespace SqlSugar
ISugarQueryable<T> asyncQueryable = CopyQueryable();
return asyncQueryable.Any(expression);
});
result.Start();
TaskStart(result);
return result;
}
@@ -713,7 +713,7 @@ namespace SqlSugar
ISugarQueryable<T> asyncQueryable = CopyQueryable();
return asyncQueryable.Any();
});
result.Start();
TaskStart(result);
return result;
}
@@ -724,7 +724,7 @@ namespace SqlSugar
ISugarQueryable<T> asyncQueryable = CopyQueryable();
return asyncQueryable.Count();
});
result.Start();
TaskStart(result);
return result;
}
public Task<int> CountAsync(Expression<Func<T, bool>> expression)
@@ -734,7 +734,7 @@ namespace SqlSugar
ISugarQueryable<T> asyncQueryable = CopyQueryable();
return asyncQueryable.Count(expression);
});
result.Start();
TaskStart(result); ;
return result;
}
public Task<TResult> MaxAsync<TResult>(string maxField)
@@ -744,7 +744,7 @@ namespace SqlSugar
ISugarQueryable<T> asyncQueryable = CopyQueryable();
return asyncQueryable.Max<TResult>(maxField);
});
result.Start();
TaskStart(result);
return result;
}
@@ -755,7 +755,7 @@ namespace SqlSugar
ISugarQueryable<T> asyncQueryable = CopyQueryable();
return asyncQueryable.Max<TResult>(expression);
});
result.Start();
TaskStart(result);
return result;
}
@@ -766,7 +766,7 @@ namespace SqlSugar
ISugarQueryable<T> asyncQueryable = CopyQueryable();
return asyncQueryable.Min<TResult>(minField);
});
result.Start();
TaskStart(result);
return result;
}
@@ -777,7 +777,7 @@ namespace SqlSugar
ISugarQueryable<T> asyncQueryable = CopyQueryable();
return asyncQueryable.Min<TResult>(expression);
});
result.Start();
TaskStart(result);
return result;
}
@@ -788,7 +788,7 @@ namespace SqlSugar
ISugarQueryable<T> asyncQueryable = CopyQueryable();
return asyncQueryable.Sum<TResult>(sumField);
});
result.Start();
TaskStart(result);
return result;
}
@@ -799,7 +799,7 @@ namespace SqlSugar
ISugarQueryable<T> asyncQueryable = CopyQueryable();
return asyncQueryable.Sum<TResult>(expression);
});
result.Start();
TaskStart(result);
return result;
}
@@ -810,7 +810,7 @@ namespace SqlSugar
ISugarQueryable<T> asyncQueryable = CopyQueryable();
return asyncQueryable.Avg<TResult>(avgField);
});
result.Start();
TaskStart(result);
return result;
}
@@ -821,7 +821,7 @@ namespace SqlSugar
ISugarQueryable<T> asyncQueryable = CopyQueryable();
return asyncQueryable.Avg<TResult>(expression);
});
result.Start();
TaskStart(result);
return result;
}
@@ -832,7 +832,7 @@ namespace SqlSugar
ISugarQueryable<T> asyncQueryable = CopyQueryable();
return asyncQueryable.ToList();
});
result.Start();
TaskStart(result);
return result;
}
@@ -843,7 +843,7 @@ namespace SqlSugar
ISugarQueryable<T> asyncQueryable = CopyQueryable();
return asyncQueryable.ToJson();
});
result.Start();
TaskStart(result);
return result;
}
@@ -854,7 +854,7 @@ namespace SqlSugar
ISugarQueryable<T> asyncQueryable = CopyQueryable();
return asyncQueryable.ToJsonPage(pageIndex, pageSize);
});
result.Start();
TaskStart(result);
return result;
}
@@ -867,7 +867,7 @@ namespace SqlSugar
var list = asyncQueryable.ToJsonPage(pageIndex, pageSize, ref totalNumberAsync);
return new KeyValuePair<string, int>(list, totalNumberAsync);
});
result.Start();
TaskStart(result);
return result;
}
@@ -878,7 +878,7 @@ namespace SqlSugar
ISugarQueryable<T> asyncQueryable = CopyQueryable();
return asyncQueryable.ToDataTable();
});
result.Start();
TaskStart(result);
return result;
}
@@ -889,7 +889,7 @@ namespace SqlSugar
ISugarQueryable<T> asyncQueryable = CopyQueryable();
return asyncQueryable.ToDataTablePage(pageIndex, pageSize);
});
result.Start();
TaskStart(result);
return result;
}
@@ -902,7 +902,7 @@ namespace SqlSugar
var list = asyncQueryable.ToDataTablePage(pageIndex, pageSize, ref totalNumberAsync);
return new KeyValuePair<DataTable, int>(list, totalNumberAsync);
});
result.Start();
TaskStart(result);
return result;
}
@@ -913,7 +913,7 @@ namespace SqlSugar
ISugarQueryable<T> asyncQueryable = CopyQueryable();
return asyncQueryable.ToPageList(pageIndex, pageSize);
});
result.Start();
TaskStart(result);
return result;
}
@@ -926,12 +926,20 @@ namespace SqlSugar
var list = asyncQueryable.ToPageList(pageIndex, pageSize, ref totalNumberAsync);
return new KeyValuePair<List<T>, int>(list, totalNumberAsync);
});
result.Start();
TaskStart(result);
return result;
}
#endregion
#region Private Methods
private void TaskStart<Type>(Task<Type> result)
{
if (this.Context.CurrentConnectionConfig.IsShardSameThread)
{
Check.Exception(true, "IsShardSameThread=true can't be used async method");
}
result.Start();
}
protected ISugarQueryable<TResult> _Select<TResult>(Expression expression)
{
var reval = InstanceFactory.GetQueryable<TResult>(this.Context.CurrentConnectionConfig);

View File

@@ -45,7 +45,7 @@ namespace SqlSugar
IUpdateable<T> asyncUpdateable = CopyUpdateable();
return asyncUpdateable.ExecuteCommand();
});
result.Start();
TaskStart(result);
return result;
}
public Task<bool> ExecuteCommandHasChangeAsync()
@@ -55,7 +55,7 @@ namespace SqlSugar
IUpdateable<T> asyncUpdateable = CopyUpdateable();
return asyncUpdateable.ExecuteCommand() > 0;
});
result.Start();
TaskStart(result);
return result;
}
public IUpdateable<T> AS(string tableName)
@@ -355,6 +355,14 @@ namespace SqlSugar
this.Context.MappingTables = OldMappingTableList;
}
}
private void TaskStart<Type>(Task<Type> result)
{
if (this.Context.CurrentConnectionConfig.IsShardSameThread)
{
Check.Exception(true, "IsShardSameThread=true can't be used async method");
}
result.Start();
}
private IUpdateable<T> CopyUpdateable()
{
var asyncContext = this.Context.Utilities.CopyContext(true);