mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-08-20 00:44:19 +08:00
Synchronous code
This commit is contained in:
parent
f3181c9e2e
commit
10342ab51b
@ -345,10 +345,10 @@ namespace SqlSugar
|
||||
var result = new DbResult<bool>();
|
||||
try
|
||||
{
|
||||
this.BeginTran();
|
||||
this.BeginTran();
|
||||
if (action != null)
|
||||
action();
|
||||
this.CommitTran();
|
||||
this.CommitTran();
|
||||
result.Data = result.IsSuccess = true;
|
||||
}
|
||||
catch (Exception ex)
|
||||
@ -485,15 +485,18 @@ namespace SqlSugar
|
||||
if (this.ProcessingEventStartingSQL != null)
|
||||
ExecuteProcessingSQL(ref sql, ref parameters);
|
||||
ExecuteBefore(sql, parameters);
|
||||
IDbCommand sqlCommand = GetCommand(sql, parameters);
|
||||
int count = sqlCommand.ExecuteNonQuery();
|
||||
if (this.IsClearParameters)
|
||||
sqlCommand.Parameters.Clear();
|
||||
// 影响条数
|
||||
this.SqlExecuteCount = count;
|
||||
ExecuteAfter(sql, parameters);
|
||||
sqlCommand.Dispose();
|
||||
return count;
|
||||
using (IDbCommand sqlCommand = GetCommand(sql, parameters))
|
||||
{
|
||||
int count = sqlCommand.ExecuteNonQuery();
|
||||
if (this.IsClearParameters)
|
||||
sqlCommand.Parameters.Clear();
|
||||
// 影响条数
|
||||
this.SqlExecuteCount = count;
|
||||
ExecuteAfter(sql, parameters);
|
||||
|
||||
//sqlCommand.Dispose();
|
||||
return count;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
@ -633,18 +636,20 @@ namespace SqlSugar
|
||||
if (this.ProcessingEventStartingSQL != null)
|
||||
ExecuteProcessingSQL(ref sql,ref parameters);
|
||||
ExecuteBefore(sql, parameters);
|
||||
var sqlCommand =IsOpenAsync? await GetCommandAsync(sql, parameters) : GetCommand(sql, parameters);
|
||||
int count;
|
||||
if (this.CancellationToken == null)
|
||||
count=await sqlCommand.ExecuteNonQueryAsync();
|
||||
else
|
||||
count=await sqlCommand.ExecuteNonQueryAsync(this.CancellationToken.Value);
|
||||
if (this.IsClearParameters)
|
||||
sqlCommand.Parameters.Clear();
|
||||
this.SqlExecuteCount = count;
|
||||
ExecuteAfter(sql, parameters);
|
||||
sqlCommand.Dispose();
|
||||
return count;
|
||||
using (var sqlCommand = IsOpenAsync ? await GetCommandAsync(sql, parameters) : GetCommand(sql, parameters))
|
||||
{
|
||||
int count;
|
||||
if (this.CancellationToken == null)
|
||||
count = await sqlCommand.ExecuteNonQueryAsync();
|
||||
else
|
||||
count = await sqlCommand.ExecuteNonQueryAsync(this.CancellationToken.Value);
|
||||
if (this.IsClearParameters)
|
||||
sqlCommand.Parameters.Clear();
|
||||
this.SqlExecuteCount = count;
|
||||
ExecuteAfter(sql, parameters);
|
||||
//sqlCommand.Dispose();
|
||||
return count;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
@ -1052,7 +1057,7 @@ namespace SqlSugar
|
||||
var result = SqlQuery<T, T2, T3, T4, T5, T6, object>(sql, parameters);
|
||||
return new Tuple<List<T>, List<T2>, List<T3>, List<T4>, List<T5>, List<T6>>(result.Item1, result.Item2, result.Item3, result.Item4, result.Item5, result.Item6);
|
||||
}
|
||||
public Tuple<List<T>, List<T2>, List<T3>, List<T4>, List<T5>, List<T6>, List<T7>> SqlQuery<T, T2, T3, T4, T5, T6, T7>(string sql, object parameters = null)
|
||||
public virtual Tuple<List<T>, List<T2>, List<T3>, List<T4>, List<T5>, List<T6>, List<T7>> SqlQuery<T, T2, T3, T4, T5, T6, T7>(string sql, object parameters = null)
|
||||
{
|
||||
var parsmeterArray = this.GetParameters(parameters);
|
||||
this.Context.InitMappingInfo<T>();
|
||||
@ -1513,7 +1518,7 @@ namespace SqlSugar
|
||||
this.Context.Root.AsyncId = Guid.NewGuid(); ;
|
||||
}
|
||||
}
|
||||
private static bool NextResult(IDataReader dataReader)
|
||||
protected bool NextResult(IDataReader dataReader)
|
||||
{
|
||||
try
|
||||
{
|
||||
@ -1784,7 +1789,7 @@ namespace SqlSugar
|
||||
|
||||
|
||||
|
||||
private List<TResult> GetData<TResult>(Type entityType, IDataReader dataReader)
|
||||
protected List<TResult> GetData<TResult>(Type entityType, IDataReader dataReader)
|
||||
{
|
||||
List<TResult> result;
|
||||
if (entityType == UtilConstants.DynamicType)
|
||||
|
@ -64,6 +64,8 @@ namespace SqlSugar
|
||||
}
|
||||
public virtual void InitTables(Type entityType)
|
||||
{
|
||||
var oldSlave = this.Context.CurrentConnectionConfig.SlaveConnectionConfigs;
|
||||
this.Context.CurrentConnectionConfig.SlaveConnectionConfigs = null;
|
||||
var splitTableAttribute = entityType.GetCustomAttribute<SplitTableAttribute>();
|
||||
if (splitTableAttribute != null)
|
||||
{
|
||||
@ -104,6 +106,7 @@ namespace SqlSugar
|
||||
|
||||
RestMappingTables(oldTableList);
|
||||
}
|
||||
this.Context.CurrentConnectionConfig.SlaveConnectionConfigs = oldSlave;
|
||||
|
||||
}
|
||||
|
||||
@ -188,7 +191,14 @@ namespace SqlSugar
|
||||
TableDifferenceProvider result = new TableDifferenceProvider();
|
||||
foreach (var type in types)
|
||||
{
|
||||
GetDifferenceTables(result, type);
|
||||
try
|
||||
{
|
||||
GetDifferenceTables(result, type);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Check.ExceptionEasy($"实体{type.Name} 出错,具体错误:" + ex.Message, $" {type.Name} error." + ex.Message);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@ -200,6 +210,7 @@ namespace SqlSugar
|
||||
var tempTableName = "TempDiff" + DateTime.Now.ToString("yyMMssHHmmssfff");
|
||||
var oldTableName = this.Context.EntityMaintenance.GetEntityInfo(type).DbTableName;
|
||||
var db = new SqlSugarProvider(UtilMethods.CopyConfig(this.Context.CurrentConnectionConfig));
|
||||
db.CurrentConnectionConfig.SlaveConnectionConfigs = null;
|
||||
db.CurrentConnectionConfig.ConfigureExternalServices=UtilMethods.IsNullReturnNew(db.CurrentConnectionConfig.ConfigureExternalServices);
|
||||
db.CurrentConnectionConfig.ConfigureExternalServices.EntityNameService += (x, p) =>
|
||||
{
|
||||
|
@ -313,6 +313,10 @@ namespace SqlSugar
|
||||
var obj = dr.GetValue(i);
|
||||
if (obj == null)
|
||||
return default(T);
|
||||
if (obj is byte[] bytes)
|
||||
{
|
||||
obj = dr.GetString(i);
|
||||
}
|
||||
var value = obj.ObjToString();
|
||||
return new SerializeService().DeserializeObject<T>(value);
|
||||
}
|
||||
|
@ -43,6 +43,16 @@ namespace SqlSugar
|
||||
}
|
||||
return this;
|
||||
}
|
||||
public EntityColumnable<T> ManyToOne(Expression<Func<T, object>> propertyExpression, string firstName, string lastName = null)
|
||||
{
|
||||
var name = ExpressionTool.GetMemberName(propertyExpression);
|
||||
if (entityColumnInfo.PropertyName == name && IsTable)
|
||||
{
|
||||
entityColumnInfo.Navigat = new Navigate(NavigateType.ManyToOne, firstName, lastName);
|
||||
entityColumnInfo.IsIgnore = true;
|
||||
}
|
||||
return this;
|
||||
}
|
||||
public EntityColumnable<T> OneToMany(Expression<Func<T, object>> propertyExpression, string firstName, string lastName)
|
||||
{
|
||||
var name = ExpressionTool.GetMemberName(propertyExpression);
|
||||
|
@ -191,7 +191,7 @@ namespace SqlSugar
|
||||
}
|
||||
public ISugarQueryable<T> IncludesAllSecondLayer<TReturn1>(Expression<Func<T, TReturn1>> expression, params string[] ignoreProperyNameList)
|
||||
{
|
||||
this.Includes(expression);
|
||||
//this.Includes(expression);
|
||||
var type = typeof(TReturn1);
|
||||
if (type.FullName.IsCollectionsList())
|
||||
{
|
||||
|
@ -1770,6 +1770,27 @@ namespace SqlSugar
|
||||
var groupBySql = UtilMethods.GetSqlString(DbType.SqlServer, result, newParas.ToArray());
|
||||
this.QueryBuilder.GroupBySql = groupBySql;
|
||||
this.QueryBuilder.GroupBySqlOld = result;
|
||||
|
||||
if (expression is NewExpression s && s.Arguments.Count > 1)
|
||||
{
|
||||
foreach (var item in s.Arguments)
|
||||
{
|
||||
var q = this.Context.Queryable<object>().QueryBuilder;
|
||||
var itemObj= q.GetExpressionValue(item, isSingle ? ResolveExpressType.FieldSingle : ResolveExpressType.FieldMultiple).GetResultString();
|
||||
if (q.Parameters.Any())
|
||||
{
|
||||
var itemGroupBySql = UtilMethods.GetSqlString(DbType.SqlServer, itemObj, q.Parameters.ToArray());
|
||||
this.QueryBuilder.GroupBySql = itemGroupBySql;
|
||||
this.QueryBuilder.GroupBySqlOld = itemGroupBySql;
|
||||
this.GroupBy(itemGroupBySql);
|
||||
}
|
||||
else
|
||||
{
|
||||
this.GroupBy(itemObj);
|
||||
}
|
||||
}
|
||||
return this;
|
||||
}
|
||||
GroupBy(result);
|
||||
}
|
||||
else
|
||||
@ -2389,8 +2410,17 @@ namespace SqlSugar
|
||||
new QueryableAppendColumn(){ Name="sugarIndex",AsName="sugarIndex" }
|
||||
};
|
||||
this.QueryBuilder.AppendValues = null;
|
||||
var isNavQuery = this.QueryBuilder.Includes != null;
|
||||
if (isNavQuery)
|
||||
{
|
||||
this.Context.Ado.DbBind.QueryBuilder.AppendColumns = this.QueryBuilder.AppendColumns;
|
||||
}
|
||||
var subList = ExpressionBuilderHelper.CallFunc(callType, methodParamters, this.Clone(), "SubQueryList");
|
||||
var appendValue = this.QueryBuilder.AppendValues;
|
||||
if (isNavQuery)
|
||||
{
|
||||
appendValue = this.Context.Ado.DbBind.QueryBuilder.AppendValues;
|
||||
}
|
||||
var list = (subList as IEnumerable).Cast<object>().ToList();
|
||||
if (isFirst && !typeof(TResult).IsAnonymousType())
|
||||
{
|
||||
|
@ -363,6 +363,7 @@ namespace SqlSugar
|
||||
{
|
||||
sql = " ";
|
||||
}
|
||||
this.QueryBuilder.SelectNewIgnoreColumns = clone.QueryBuilder.SelectNewIgnoreColumns;
|
||||
this.QueryBuilder.SubToListParameters = clone.QueryBuilder.SubToListParameters;
|
||||
this.QueryBuilder.Parameters = clone.QueryBuilder.Parameters;
|
||||
this.QueryBuilder.LambdaExpressions.ParameterIndex = clone.QueryBuilder.LambdaExpressions.ParameterIndex;
|
||||
@ -1196,6 +1197,7 @@ namespace SqlSugar
|
||||
sql = " ";
|
||||
}
|
||||
this.QueryBuilder.Parameters = clone.QueryBuilder.Parameters;
|
||||
this.QueryBuilder.SelectNewIgnoreColumns = clone.QueryBuilder.SelectNewIgnoreColumns;
|
||||
this.QueryBuilder.SubToListParameters = clone.QueryBuilder.SubToListParameters;
|
||||
this.QueryBuilder.LambdaExpressions.ParameterIndex = clone.QueryBuilder.LambdaExpressions.ParameterIndex;
|
||||
var parameters = (expression as LambdaExpression).Parameters;
|
||||
@ -1927,6 +1929,7 @@ namespace SqlSugar
|
||||
sql = " ";
|
||||
}
|
||||
this.QueryBuilder.Parameters = clone.QueryBuilder.Parameters;
|
||||
this.QueryBuilder.SelectNewIgnoreColumns = clone.QueryBuilder.SelectNewIgnoreColumns;
|
||||
this.QueryBuilder.SubToListParameters = clone.QueryBuilder.SubToListParameters;
|
||||
this.QueryBuilder.LambdaExpressions.ParameterIndex=clone.QueryBuilder.LambdaExpressions.ParameterIndex;
|
||||
var parameters = (expression as LambdaExpression).Parameters;
|
||||
@ -2762,6 +2765,7 @@ namespace SqlSugar
|
||||
sql = " ";
|
||||
}
|
||||
this.QueryBuilder.Parameters = clone.QueryBuilder.Parameters;
|
||||
this.QueryBuilder.SelectNewIgnoreColumns = clone.QueryBuilder.SelectNewIgnoreColumns;
|
||||
this.QueryBuilder.SubToListParameters = clone.QueryBuilder.SubToListParameters;
|
||||
this.QueryBuilder.LambdaExpressions.ParameterIndex = clone.QueryBuilder.LambdaExpressions.ParameterIndex;
|
||||
var parameters = (expression as LambdaExpression).Parameters;
|
||||
|
@ -377,6 +377,7 @@ namespace SqlSugar
|
||||
sql = " ";
|
||||
}
|
||||
this.QueryBuilder.Parameters = clone.QueryBuilder.Parameters;
|
||||
this.QueryBuilder.SelectNewIgnoreColumns = clone.QueryBuilder.SelectNewIgnoreColumns;
|
||||
this.QueryBuilder.SubToListParameters = clone.QueryBuilder.SubToListParameters;
|
||||
this.QueryBuilder.LambdaExpressions.ParameterIndex = clone.QueryBuilder.LambdaExpressions.ParameterIndex;
|
||||
var parameters = (expression as LambdaExpression).Parameters;
|
||||
@ -1223,6 +1224,7 @@ namespace SqlSugar
|
||||
sql = " ";
|
||||
}
|
||||
this.QueryBuilder.Parameters = clone.QueryBuilder.Parameters;
|
||||
this.QueryBuilder.SelectNewIgnoreColumns = clone.QueryBuilder.SelectNewIgnoreColumns;
|
||||
this.QueryBuilder.SubToListParameters = clone.QueryBuilder.SubToListParameters;
|
||||
this.QueryBuilder.LambdaExpressions.ParameterIndex = clone.QueryBuilder.LambdaExpressions.ParameterIndex;
|
||||
var parameters = (expression as LambdaExpression).Parameters;
|
||||
@ -2084,6 +2086,7 @@ namespace SqlSugar
|
||||
sql = " ";
|
||||
}
|
||||
this.QueryBuilder.Parameters = clone.QueryBuilder.Parameters;
|
||||
this.QueryBuilder.SelectNewIgnoreColumns = clone.QueryBuilder.SelectNewIgnoreColumns;
|
||||
this.QueryBuilder.SubToListParameters = clone.QueryBuilder.SubToListParameters;
|
||||
this.QueryBuilder.LambdaExpressions.ParameterIndex = clone.QueryBuilder.LambdaExpressions.ParameterIndex;
|
||||
var parameters = (expression as LambdaExpression).Parameters;
|
||||
@ -2788,6 +2791,7 @@ namespace SqlSugar
|
||||
sql = " ";
|
||||
}
|
||||
this.QueryBuilder.Parameters = clone.QueryBuilder.Parameters;
|
||||
this.QueryBuilder.SelectNewIgnoreColumns = clone.QueryBuilder.SelectNewIgnoreColumns;
|
||||
this.QueryBuilder.SubToListParameters = clone.QueryBuilder.SubToListParameters;
|
||||
this.QueryBuilder.LambdaExpressions.ParameterIndex = clone.QueryBuilder.LambdaExpressions.ParameterIndex;
|
||||
var parameters = (expression as LambdaExpression).Parameters;
|
||||
@ -3586,6 +3590,7 @@ namespace SqlSugar
|
||||
sql = " ";
|
||||
}
|
||||
this.QueryBuilder.Parameters = clone.QueryBuilder.Parameters;
|
||||
this.QueryBuilder.SelectNewIgnoreColumns = clone.QueryBuilder.SelectNewIgnoreColumns;
|
||||
this.QueryBuilder.SubToListParameters = clone.QueryBuilder.SubToListParameters;
|
||||
this.QueryBuilder.LambdaExpressions.ParameterIndex = clone.QueryBuilder.LambdaExpressions.ParameterIndex;
|
||||
var parameters = (expression as LambdaExpression).Parameters;
|
||||
|
@ -362,6 +362,7 @@ namespace SqlSugar
|
||||
sql = " ";
|
||||
}
|
||||
this.QueryBuilder.Parameters = clone.QueryBuilder.Parameters;
|
||||
this.QueryBuilder.SelectNewIgnoreColumns = clone.QueryBuilder.SelectNewIgnoreColumns;
|
||||
this.QueryBuilder.SubToListParameters = clone.QueryBuilder.SubToListParameters;
|
||||
this.QueryBuilder.LambdaExpressions.ParameterIndex = clone.QueryBuilder.LambdaExpressions.ParameterIndex;
|
||||
var parameters = (expression as LambdaExpression).Parameters;
|
||||
@ -993,6 +994,7 @@ namespace SqlSugar
|
||||
sql = " ";
|
||||
}
|
||||
this.QueryBuilder.Parameters = clone.QueryBuilder.Parameters;
|
||||
this.QueryBuilder.SelectNewIgnoreColumns = clone.QueryBuilder.SelectNewIgnoreColumns;
|
||||
this.QueryBuilder.SubToListParameters = clone.QueryBuilder.SubToListParameters;
|
||||
this.QueryBuilder.LambdaExpressions.ParameterIndex = clone.QueryBuilder.LambdaExpressions.ParameterIndex;
|
||||
var parameters = (expression as LambdaExpression).Parameters;
|
||||
|
@ -293,7 +293,7 @@ namespace SqlSugar
|
||||
{
|
||||
return LambdaExpressions.DbMehtods.GetDate();
|
||||
}
|
||||
else if (UtilMethods.IsErrorDecimalString() == true)
|
||||
else if ((columnInfo.Value is decimal|| columnInfo.Value is double||columnInfo.Value is float) &&UtilMethods.IsErrorDecimalString() == true)
|
||||
{
|
||||
var pname = Builder.SqlParameterKeyWord + "Decimal" + GetDbColumnIndex;
|
||||
var p = new SugarParameter(pname, columnInfo.Value);
|
||||
|
@ -476,7 +476,7 @@ namespace SqlSugar
|
||||
GetDbColumnIndex++;
|
||||
return pname;
|
||||
}
|
||||
else if (UtilMethods.IsErrorDecimalString() == true)
|
||||
else if ((columnInfo.Value is decimal || columnInfo.Value is double || columnInfo.Value is float) && UtilMethods.IsErrorDecimalString() == true)
|
||||
{
|
||||
var pname = Builder.SqlParameterKeyWord + "Decimal" + GetDbColumnIndex;
|
||||
var p = new SugarParameter(pname, columnInfo.Value);
|
||||
|
@ -343,7 +343,7 @@ namespace SqlSugar
|
||||
{
|
||||
continue;
|
||||
}
|
||||
var item = memberAssignment.Expression;
|
||||
var item =ExpressionTool.RemoveConvert(memberAssignment.Expression);
|
||||
if (item.Type.IsClass()&& item is MemberExpression &&(item as MemberExpression).Expression is ParameterExpression)
|
||||
{
|
||||
var rootType = ((item as MemberExpression).Expression as ParameterExpression).Type;
|
||||
|
@ -751,6 +751,10 @@ namespace SqlSugar
|
||||
|
||||
if (destinationType.IsEnum && value is int)
|
||||
return Enum.ToObject(destinationType, (int)value);
|
||||
if (destinationType.IsEnum && value is double)
|
||||
return Enum.ToObject(destinationType, Convert.ToInt32(value));
|
||||
if (destinationType.IsEnum && value is decimal)
|
||||
return Enum.ToObject(destinationType, Convert.ToInt32(value));
|
||||
|
||||
if (destinationType.Name == "TimeOnly"&& sourceType.Name!= "TimeOnly")
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user