This commit is contained in:
sunkaixuan 2017-03-04 01:19:25 +08:00
parent ac52b65e10
commit 0227ce8a56
5 changed files with 29 additions and 15 deletions

View File

@ -31,7 +31,7 @@ namespace OrmTest.ExpressionTest
{
var list = db.Queryable<Student, School>((st, sc) => new object[] {
JoinType.Left,st.SchoolId==sc.Id
}).ToList();
}).Where(st=>st.Id>0).ToList();
}
}

View File

@ -10,27 +10,34 @@ namespace SqlSugar
public class QueryableAccessory
{
protected List<SugarParameter> _Pars;
protected List<SugarParameter> Pars
{
get
{
if (_Pars == null)
_Pars = new List<SugarParameter>();
return _Pars;
}
}
protected void AddPars(object whereObj, SqlSugarClient context)
{
var sqlParsArray = context.Database.GetParameters(whereObj);
if (_Pars == null)
_Pars = new List<SugarParameter>();
if (sqlParsArray != null)
_Pars.AddRange(sqlParsArray);
this.Pars.AddRange(sqlParsArray);
}
protected void AddPars(List<SugarParameter> pars, SqlSugarClient context)
{
if (_Pars == null)
_Pars = new List<SugarParameter>();
if (pars != null)
_Pars.AddRange(pars);
}
protected void Where<T>(Expression<Func<T, bool>> expression, ResolveExpressType type, SqlSugarClient context) where T : class, new()
{
ILambdaExpressions resolveExpress =InstanceFactory.GetLambdaExpressions(context.CurrentConnectionConfig);
resolveExpress.Resolve(expression,type);
_Pars.AddRange(resolveExpress.Parameters);
context.SqlBuilder.LambadaQueryBuilder.WhereInfos.Add(resolveExpress.Result.ToString());
ILambdaExpressions resolveExpress = InstanceFactory.GetLambdaExpressions(context.CurrentConnectionConfig);
resolveExpress.Resolve(expression, type);
Pars.AddRange(resolveExpress.Parameters);
context.SqlBuilder.LambadaQueryBuilder.WhereInfos.Add(resolveExpress.Result.GetResultString());
}
protected void Where<T>(string whereString, object whereObj, SqlSugarClient context) where T : class, new()

View File

@ -28,7 +28,12 @@ namespace SqlSugar
public virtual ISugarQueryable<T> Where(Expression<Func<T, bool>> expression)
{
base.Where<T>(expression, ResolveExpressType.WhereSingle, this.Context);
var type = ResolveExpressType.WhereSingle;
if (Context.SqlBuilder.LambadaQueryBuilder.JoinQueryInfos.IsValuable())
{
type = ResolveExpressType.WhereMultiple;
}
base.Where<T>(expression,type, this.Context);
return this;
}

View File

@ -74,7 +74,7 @@ namespace SqlSugar
if (this.WhereInfos == null) return null;
else
{
return string.Join(" ", this.WhereInfos);
return " WHERE "+string.Join(" ", this.WhereInfos);
}
}
}

View File

@ -76,7 +76,8 @@ namespace SqlSugar
public override IDataParameter[] ToIDbDataParameter(params SugarParameter[] pars)
{
if (pars == null || pars.Length == 0) return null;
IDataParameter[] reval = new IDataParameter[pars.Length];
SqlParameter[] reval = new SqlParameter[pars.Length];
int i = 0;
foreach (var par in pars)
{
var p = new SqlParameter();
@ -85,9 +86,10 @@ namespace SqlSugar
p.Size = par.Size;
p.Value = par.Value;
p.DbType = par.DbType;
reval[0] =p;
reval[i] =p;
++i;
}
return pars;
return reval;
}
}
}