动态构建linq查询

时间:2016-05-19 18:46:07

标签: linq

我有如下所示的linq声明:

var biosample= (from a in db.Biosample
                 select a);

if (catalognbr != -1)
{ 
    biosample.Where (a => a.Catalog_nbr ==catalognbr);
}

如果用户选择catalognbr,则查询会连接where条件,否则会跳过where。现在它不按我想要的方式工作。如何使它工作?

感谢。

2 个答案:

答案 0 :(得分:1)

您可以在查询中加入catalognbr支票

ORA-00928: missing SELECT keyword
00928. 00000 -  "missing SELECT keyword"

您还可以通过将结果分配回biosample

来进行初始尝试
var biosample= (from a in db.Biosample
             select a)
           .Where (a => catalognbr == -1 || a.Catalog_nbr ==catalognbr);

答案 1 :(得分:0)

在你的代码中写这样的内容;

biosample = biosample.Where (a => a.Catalog_nbr ==catalognbr);