我有事務對象列表,並希望根據用戶當前所處的視圖以特定條件對其進行排序。如何在LINQ中忽略'where'和'order by'條件
我遇到的問題是,爲了在where子句中添加一個條件,首先我需要檢查它是否爲null,以防止出現空指針異常。這會導致列空值被過濾出來的記錄(並且我想將它們包含在列表的底部)。
如何修改查詢以便它忽略條件(where和order by)如果該列爲null並仍將它們追加到結果集?
這是一個例子查詢:
transactions = transactions
.Where(t => t.PurchaseRequisition != null &&
t.Award != null && t.PurchaseRequisition.RequisitionedBy != null)
.OrderBy(t => t.Award.ContractNumber).
ThenBy(t => ToSafeString(t.Award.ContractNumber)).
ThenBy(t => ToSafeString(t.PurchaseRequisition.RequisitionedBy.FullName));
public string ToSafeString(string s)
{
return s ?? String.Empty;
}
//我想記錄,其中PurchaseRequisition或獎爲null附加到結果集。
如何訂購結果集的一部分?我想你會需要兩個查詢。 – 2012-04-11 15:36:18