[c#]选择所有变量时,空值或 null 别的选择值筛选

标签: sql Linq C#
发布时间: 2017/2/28 21:11:22
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我 linq 查询来概括了一些像-

       string CustomerID;// can be "ALL" or any value

        var itemlist = ( from itmhstry in context.ItemHistories
               join itm in context.Items on itmhstry.ItemID equals itm.ItemID into itm_join
               where itmhstry.CustomerID == CustomerID
.......................)

和查询去选择所需的值

在这里如何选择所有值 (喜欢都选择 * > > 无筛选器) 时 CustomerID 值是全/NULL。?如何帧 where 子句为此目的?

我可以重写相同的查询,如果与别的有两个不同的查询来处理这个问题但还有更简单的方式吗?

解决方法 1:

试试这个︰

var itemlist = from itmhstry in context.ItemHistories
               join itm in context.Items on itmhstry.ItemID equals itm.ItemID into itm_join
               where string.IsNullOrEmpty(CustomerID) || 
                     (CustomerID == "ALL") ||
                     (itmhstry.CustomerID == CustomerID) 

如果 CustomerID 为空或 null 或"全部",然后第一或第二个谓词在 where 子句的计算结果为 true 和没有筛选应用。如果 CustomerID 空不空而不是"所有"的不是那么你最终与初始查询。

官方微信
官方QQ群
31647020