mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-08-23 13:06:50 +08:00
Update ConfigQuery
This commit is contained in:
parent
4cb5bfa326
commit
c990d44d64
@ -11,33 +11,36 @@ namespace SqlSugar
|
||||
public SqlSugarProvider Context { get; set; }
|
||||
public void SetTable<T>(Expression<Func<T, object>> keyExpression, Expression<Func<T, object>> valueTextExpression, string uniqueCode = null, Expression<Func<T, object>> whereExpression=null)
|
||||
{
|
||||
var entity = this.Context.EntityMaintenance.GetEntityInfo<T>();
|
||||
ExpressionContext context = new ExpressionContext();
|
||||
var query = Context.Queryable<T>().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<T>();
|
||||
ExpressionContext context = new ExpressionContext();
|
||||
var query = Context.Queryable<T>().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<T>(Expression<Func<T, object>> key, Expression<Func<T, object>> value)
|
||||
|
Loading…
Reference in New Issue
Block a user