多个LINQ表达式和动态属性

时间:2013-05-12 20:16:51

标签: c# sql linq generics expression

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

那么,在一天结束时,下面是否可以实现?

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

1 个答案:

答案 0 :(得分:2)

实际上问题并不是那么清楚。但是我注意到如果您使用 LINQ Dynamic Query Library 可以解决问题,那么您可以使用属性名称作为字符串来执行您想要的任何操作(OrderBy,哪里....)

有关详细信息,请查看this