1.)我有一个实体查询,如:return myEntityStore.Query<theType>(x => x.Name == "whatevs");
但是,理想情况下,我想调用一个将其他表达式附加到原始查询的函数,例如 OrderBy 和更多 Where's。
像这样的东西:
public IQueryable<T> ProcessQuery<T>(System.Linq.Expressions.Expression<Func<T, bool>> theOriginalQuery) where T: class
{
return EntityStore.Query<T>(theOriginalQuery).Where(x => x.Active == true).OrderBy(x => x.OrderBy);
}
2.) 这里一个明显的问题是我正在使用<T>
,所以有没有办法将属性指定为字符串或其他东西?
<T>(expression).OrderBy(x => "x.ThisColumnExistsIPromise");
3.) Query 函数已经将表达式转换为 Where(),那么简单地执行 Where(expression).Where(expression) 就足够了吗?
那么,归根结底,是否可以实现以下目标?
entityStore.Query<T>(originalExpression).Where(additionalExpression).Where(x => "x.Active == true").OrderBy(x => "x.OrderBy");