根据用户输入构造动态linq查询

时间:2012-05-25 07:58:53

标签: linq entity-framework

我在项目中使用动态linq但不知道如何基于参数运行特定查询。下面的示例显示了用于运行3个单独查询的动态linq,其中用户输入了过滤器表达式或文件管理器和排序表达式等。不使用if语句来检查I(这看起来不正确和杂乱,因为我最终会遇到很多if用于涵盖许多不同排列的语句)我不确定如何动态生成语句。这可能吗?我正在针对Entity Framework运行此查询。

context.Users.AsQueryable().Where(filterExpression)
context.Users.AsQueryable().Where(filterExpression).OrderBy(sortExpression)
context.Users.AsQueryable()Take(10).Where(filterExpression).OrderBy(sortExpression)

1 个答案:

答案 0 :(得分:3)

这应该仅使用表达式树来实现,或者可以使用if..else子句

How to: Use Expression Trees to Build Dynamic Queries (C# and Visual Basic)