Linq to sql Where子句中的Linq to Sql为空

Linq to sql Where子句中的Linq to Sql为空,linq-to-sql,Linq To Sql,如果Sessions.Current.AdminProductId为null,是否可以忽略Where子句?我想将下面的代码优化为一行代码 if (Sessions.Current.AdminProductId == null) gvUsers.DataSource = DataAccess.Instance.Users; else gvUsers.DataSource = DataAccess.Instance.Users.Where(p => p.Orders.Any(o =&g

如果Sessions.Current.AdminProductId为null,是否可以忽略Where子句?我想将下面的代码优化为一行代码

if (Sessions.Current.AdminProductId == null)
  gvUsers.DataSource = DataAccess.Instance.Users;
else
  gvUsers.DataSource = DataAccess.Instance.Users.Where(p => p.Orders.Any(o => o.ProductId == Sessions.Current.AdminProductId));

只需在where子句中添加空检查,如下所示:

 gvUsers.DataSource = DataAccess.Instance.Users.Where(p => (Sessions.Current.AdminProductId == null) || (Sessions.Current.AdminProductId != null && p.Orders.Any(o => o.ProductId == Sessions.Current.AdminProductId)));

此代码有什么问题?不需要第一个空检查
(Sessions.Current.AdminProductId==null)