Linq最有效的方法

本文关键字:方法 有效 Linq | 更新日期: 2023-09-27 18:04:52

我需要使用Linq语句如下

      var data = db.tbl1
      .Where(w => clientIds == clientid && w.Source == source);

我有一个下拉菜单,我从哪里得到的来源。下拉值如下:

All
NewsPaper
Web

事情是NewsPaper和Web是Source的有效值。一切并非如此。所有这些都意味着记录可以是NewsPaper或Web。

如果他们选择All,我如何修改w.c source使All表示NewsPaper或Web。我可以做2个独立的查询,如下所示,而不是:

    if(source == "All")
    {
       var data = db.tbl1
      .Where(w => clientIds == clientid);
    }
    else
    {
       var data = db.tbl1
      .Where(w => clientIds == clientid && w.Source == source);
    }

我喜欢在一个查询中完成它,因为我的查询实际上比上面显示的更复杂。

提前感谢

Linq最有效的方法

试试这个:

var data = db.tbl1
  .Where(w => clientIds == clientid && (source == "All" || w.Source == source));

@mattytommo答案是可以接受的,但我更喜欢把它们分开一点。

var data = db.tbl1.Where(w => clientIds == clientid);
if (source != "All")
    data = data.Where(w => w.Source == source);