This commit is contained in:
sunkaixuan 2017-08-16 02:13:39 +08:00
parent ad92d13fa3
commit 24a237aedc
2 changed files with 15 additions and 0 deletions

View File

@ -258,6 +258,20 @@ namespace SqlSugar
}
return In(expression, inValues.ToArray());
}
public virtual ISugarQueryable<T> In<FieldType>(Expression<Func<T, object>> expression, ISugarQueryable<FieldType> childQueryExpression) {
var sqlObj=childQueryExpression.ToSql();
if (sqlObj.Value.IsValuable()) {
this.QueryBuilder.Parameters.AddRange(sqlObj.Value);
}
var isSingle = QueryBuilder.IsSingle();
var lamResult = QueryBuilder.GetExpressionValue(expression, isSingle ? ResolveExpressType.FieldSingle : ResolveExpressType.FieldMultiple);
var fieldName = lamResult.GetResultString();
var whereSql = string.Format(this.QueryBuilder.InTemplate, fieldName, sqlObj.Key);
this.QueryBuilder.WhereInfos.Add(SqlBuilder.AppendWhereOrAnd(this.QueryBuilder.WhereInfos.IsNullOrEmpty(),whereSql));
return this;
}
public virtual ISugarQueryable<T> OrderBy(string orderFileds)
{
var orderByValue = QueryBuilder.OrderByValue;

View File

@ -36,6 +36,7 @@ namespace SqlSugar
ISugarQueryable<T> In<TParamter>(List<TParamter> pkValues);
ISugarQueryable<T> In<FieldType>(string InFieldName, List<FieldType> inValues);
ISugarQueryable<T> In<FieldType>(Expression<Func<T, object>> expression, List<FieldType> inValues);
ISugarQueryable<T> In<FieldType>(Expression<Func<T, object>> expression, ISugarQueryable<FieldType> childQueryExpression);
ISugarQueryable<T> OrderBy(string orderFileds);
ISugarQueryable<T> OrderBy(Expression<Func<T, object>> expression, OrderByType type = OrderByType.Asc);