我在项目中使用动态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)
答案 0 :(得分:3)
这应该仅使用表达式树来实现,或者可以使用if..else子句
How to: Use Expression Trees to Build Dynamic Queries (C# and Visual Basic)