比方說,我需要一個對象與存儲在我的數據庫的表中調用索引的其他對象。 我需要的對象的X
屬性,這是一個要比較的字符串,但它可能是null
。如何取消引用可能在LINQ
我也有在比較之前修剪我comparedObject的X屬性。 我試着做到以下幾點:
List<Guid> Ids = DataContext.Indexes.Where(ci =>
(comparedObject.X != null && ci.X != null ?
ci.X == comparedObject.X.Trim() :
(ci.X == null || ci.X == string.Empty) && (comparedObject.X == null || comparedObject.X == string.Empty))).Select(ci => ci.Id).ToList();
而且即使comparedObjects.X
是null
它仍然拋出了comparedObject.X.Trim()
表達一個空引用異常。
我認爲對LINQ轉換情況發生的原因?
有沒有更好的方法來修剪X
屬性,而不必分配comparedObject.X
空字符串,以防查詢之前它爲空?
編輯: 我想詳細說明 - 這個查詢在這裏簡化了,我也比較了其他6個屬性。我想在1個查詢中保留這一點,而不是單獨分爲僅在X
屬性中有所不同的2個查詢。 在查詢之外修剪是我目前的解決方案,我希望有一個聲明的解決方案,如果有任何:)
謝謝!
那你想在你的,如果你要是別的選擇? – Ehsan
嘗試使用string.IsNullOrWhiteSpace() - 通過查看查詢,似乎不應該執行trim()語句。 – Jash