2012-01-09 132 views
0

如果Sessions.Current.AdminProductId爲null,是否可以忽略Where子句?我想將下面的代碼優化成一行代碼。Linq to Sql在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)); 
+0

什麼是這個代碼的問題? – 2012-01-09 08:37:38

+0

我只是想優化它。 – Tomas 2012-01-09 08:42:55

回答

2

你只需要添加空校驗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))); 
+0

不需要第一個空檢查'(Sessions.Current.AdminProductId == null)'。 – Magnus 2012-01-09 20:47:32