2012-09-15 75 views
0

我有幾個linq查詢導致空值問題。我很確定有一個簡單的答案,但我不能認爲它是什麼。如何空檢查這個linq查詢?

var IDs = _user.IsNotNull() 
     ? _user.BookmarkedStores.Select(s => s.StoreId) 
     : null; 

    var stores = IDs.IsNotNull() 
     ? StoreBL.FindActiveById(IDs).OrderBy(s => s.Name).ToList() 
     : null; 

空異常由IQueryable.OrderBy拋出,因爲StoreBL.FindActiveById爲空。空的退貨有效,因爲商店可能在ID列表中,但不是活動的。

所以我需要把它們之間的空檢查以某種方式。

任何人都會建議是否以及如何在查詢中完成它?

回答

0

我找到了合適的答案。

FindActiveById()現在返回Enumerable.Empty()。AsQueryable()而不是null。

+0

您應該將此標記爲答案 –