From c990d44d640524a04365d90f548b4fca446d2e2e Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Sun, 22 May 2022 14:55:56 +0800 Subject: [PATCH] Update ConfigQuery --- Src/Asp.Net/SqlSugar/Entities/ConfigQuery.cs | 53 +++++++++++--------- 1 file changed, 28 insertions(+), 25 deletions(-) diff --git a/Src/Asp.Net/SqlSugar/Entities/ConfigQuery.cs b/Src/Asp.Net/SqlSugar/Entities/ConfigQuery.cs index 7b17d840d..6b5db90a3 100644 --- a/Src/Asp.Net/SqlSugar/Entities/ConfigQuery.cs +++ b/Src/Asp.Net/SqlSugar/Entities/ConfigQuery.cs @@ -11,33 +11,36 @@ namespace SqlSugar public SqlSugarProvider Context { get; set; } public void SetTable(Expression> keyExpression, Expression> valueTextExpression, string uniqueCode = null, Expression> whereExpression=null) { - var entity = this.Context.EntityMaintenance.GetEntityInfo(); - ExpressionContext context = new ExpressionContext(); - var query = Context.Queryable().QueryBuilder; - var keyValue= query.GetExpressionValue(keyExpression, ResolveExpressType.FieldSingle).GetString(); - var ValueValue = query.GetExpressionValue(valueTextExpression, ResolveExpressType.FieldSingle).GetString(); - string where = null; - if (whereExpression != null) + lock (SqlFuncExtendsion.TableInfos) { - where=query.GetExpressionValue(whereExpression, ResolveExpressType.WhereSingle).GetResultString(); - } - context.MappingTables = this.Context.MappingTables; - if (!SqlFuncExtendsion.TableInfos.Any(y => y.Type == typeof(T) && y.Code == uniqueCode)) - { - SqlFuncExtendsion.TableInfos.Add(new ConfigTableInfo() + var entity = this.Context.EntityMaintenance.GetEntityInfo(); + ExpressionContext context = new ExpressionContext(); + var query = Context.Queryable().QueryBuilder; + var keyValue = query.GetExpressionValue(keyExpression, ResolveExpressType.FieldSingle).GetString(); + var ValueValue = query.GetExpressionValue(valueTextExpression, ResolveExpressType.FieldSingle).GetString(); + string where = null; + if (whereExpression != null) { - Type = typeof(T), - TableName = entity.DbTableName, - Key = keyValue, - Value = ValueValue, - Where = where, - Parameter = query.Parameters, - Code = uniqueCode - }); - } - else - { - Check.Exception(true, "SetKeyValue error , entity & uniqueCode already exist"); + where = query.GetExpressionValue(whereExpression, ResolveExpressType.WhereSingle).GetResultString(); + } + context.MappingTables = this.Context.MappingTables; + if (!SqlFuncExtendsion.TableInfos.Any(y => y.Type == typeof(T) && y.Code == uniqueCode)) + { + SqlFuncExtendsion.TableInfos.Add(new ConfigTableInfo() + { + Type = typeof(T), + TableName = entity.DbTableName, + Key = keyValue, + Value = ValueValue, + Where = where, + Parameter = query.Parameters, + Code = uniqueCode + }); + } + else + { + Check.Exception(true, "SetKeyValue error , entity & uniqueCode already exist"); + } } } public void SetTable(Expression> key, Expression> value)