多个LINQ表达式和动态属性

本文关键字:动态 属性 表达式 LINQ 多个 | 更新日期: 2023-09-27 18:13:09

1。(我有一个实体查询,如:return myEntityStore.Query<theType>(x => x.Name == "whatevs");

然而,理想情况下,我希望调用一个函数,该函数将其他表达式附加到原始查询中,如OrderBy和更多Where。

类似这样的东西:

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(表达式(.Where(表达式(就足够了吗?

那么,归根结底,以下是可能实现的吗?

entityStore.Query<T>(originalExpression).Where(additionalExpression).Where(x => "x.Active == true").OrderBy(x => "x.OrderBy");

多个LINQ表达式和动态属性

实际上这个问题并不那么清楚。但我注意到,如果您使用LINQ动态查询库,那么您可以使用属性名称作为字符串来执行任何您想要的操作(OrderBy,Where…(

有关更多信息,请查看此