在LINQ中使用条件

迈克·豪

如何使用LINQ中的条件来重写它?

如果selectID = 0,我希望它运行:

   var products = from p in product.Table
       orderby p.Name
       where (p.stock == stockId)
      select p;        

如果selectID不为零,我希望它运行:

   var products = from p in product.Table
       orderby p.Name
       where (p.stock == stockId) &&        
             (p.Id == selectID)
      select p;             

这在下面可以工作,但是我必须使用“虚拟”第二条件(p.hidden == false)来使三元运算符起作用:

   var products = from p in product.Table
       orderby p.Name
       where (p.stock == stockId) &&        
      (selectID != 0 ? p.Id == selectID : p.hidden == false)
      select p;             

有没有一种摆脱(p.hidden == false)的方法,因为在逻辑上它不是必需的,只是在那里可以使操作员工作。谢谢

蒂姆·施密特(Tim Schmelter)

您可以使用与记录相同的ID作为后备值:

var products = from p in product.Table
               orderby p.Name
               where p.stock == stockId && 
                     p.Id == (selectID == 0 ? p.Id : selectID)
               select p; 

但是,由于这可能导致查询计划效率降低,因此我将仅使用if-else

var products = product.Table.Where(p => p.stock == stockId);
if(selectID != 0)
    products = products.Where(p => p.Id == selectID);
products = products.OrderBy(p=> p.Name);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在LINQ中使用条件

来自分类Dev

在LINQ C#中使用OR条件

来自分类Dev

在Linq查询中使用条件if语句

来自分类Dev

我可以在LINQ中使用后置条件语句吗?

来自分类Dev

在多个条件和子查询中使用LINQ左联接

来自分类Dev

在联接LINQ中使用多个条件。我和

来自分类Dev

在LINQ查询中使用条件语句C#

来自分类Dev

不同的使用条件Linq

来自分类Dev

使用Linq的条件

来自分类Dev

在LINQ中使用包含

来自分类Dev

在Wolfram中使用LINQ

来自分类Dev

在JArray中使用LINQ

来自分类Dev

在JArray中使用LINQ

来自分类Dev

在LINQ中使用GroupBy

来自分类Dev

NHibernate在SQL搜索中使用.where()条件,还是在以后使用LINQ?

来自分类Dev

在CMD中使用if条件

来自分类Dev

在JSP中使用IF条件

来自分类Dev

在JavaScript中使用条件

来自分类Dev

在XSL中使用OR条件

来自分类Dev

在Prolog中使用条件

来自分类Dev

在vba中使用AND条件

来自分类Dev

有可能在LinQ中使用条件内部where子句吗?

来自分类Dev

通过在Entity Framework中使用linq提供多个List <int>类型条件

来自分类Dev

如何在有条件的一列中使用LINQ select

来自分类Dev

如何在实体框架 LINQ 中使用其中包含的 Where 条件?

来自分类Dev

在EF Linq to Entities中使用动态linq

来自分类Dev

Linq中子句的使用条件

来自分类Dev

Linq中子句的使用条件

来自分类Dev

使用多个条件的Linq查找