Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于用户输入构造动态linq查询_Linq_Entity Framework - Fatal编程技术网

基于用户输入构造动态linq查询

基于用户输入构造动态linq查询,linq,entity-framework,Linq,Entity Framework,我在项目中使用动态linq,但不知道如何基于参数运行特定查询。下面的示例显示了用于运行3个单独查询的动态linq,其中用户输入了筛选表达式或文件管理器和排序表达式等,而没有使用if语句检查I(这似乎不正确且混乱,因为我可能会使用大量if语句来覆盖许多不同的排列)我不确定如何动态生成语句。这可能吗?我正在对实体框架运行此查询 context.Users.AsQueryable().Where(filterExpression) context.Users.AsQueryable().Where(f

我在项目中使用动态linq,但不知道如何基于参数运行特定查询。下面的示例显示了用于运行3个单独查询的动态linq,其中用户输入了筛选表达式或文件管理器和排序表达式等,而没有使用if语句检查I(这似乎不正确且混乱,因为我可能会使用大量if语句来覆盖许多不同的排列)我不确定如何动态生成语句。这可能吗?我正在对实体框架运行此查询

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

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


试试我正在使用的动态linq库,但需要根据用户输入“动态”构建动态linq表达式。我觉得if..else子句不对,因此提出了这个问题。根据传递的参数,子句可能会变得非常大。但是,如果这和表达式树是唯一的方法,那么我可能会进一步研究表达式树。我决定使用if..else路线,因为使用动态linq的表达式树似乎有些过分。