c# - 多个 LINQ 表达式和动态属性

标签 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");

最佳答案

其实这个问题不太清楚。但我注意到,如果您使用 LINQ Dynamic Query Library ,您的问题可能会得到解决 那么你可以使用属性名称作为字符串来执行你想要的任何操作(OrderBy,Where ....)

有关更多信息,请查看this

关于c# - 多个 LINQ 表达式和动态属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16511639/

相关文章:

sql - 为什么我在 SQL Server 'in' 子句中出现语法错误?

SQL Server - 获取排名第一的产品的总计数

Mysql 间隔新年后不起作用

linq - 将 linq 结果转换为 List<MyInterface>

c# - 如何使用 Azure 加速 ASP.NET MVC 中的分页代码?

c# - 使用 Mono 4.3.3 在 Debian/Jessie 上构建 MonoDevelop

c# stream wcf上传文件

c# - 在 Linq 中使用函数

c# - 为什么列表使用的内存几乎是数组的 3 倍?

c# - 如何像 Microsoft Word 一样在 TextBox 中给拼写错误的单词加下划线?