我嘗試做以下(SelectedIdCollection是列表和cb.Id爲int) -EF6的LINQ - 如何創建一個過濾器表達式等同於 「在哪裏(名單== NULL || List.Contains(OBJ))」?
db.Items.Where(cb => (SelectedIdCollection == null || SelectedIdCollection.Contains(cb.Id)))
基本上,如果SelectedIdCollection
爲null,則返回的一切,如果它不爲空,然後通過它進行過濾。
但它引發以下錯誤 -
「System.NotSupportedException」類型的異常出現在EntityFramework.SqlServer.dll但在用戶代碼中沒有處理。不能 比較元素類型 'System.Collections.Generic.IList`1 [[System.Int32,mscorlib, Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089]]'。 只有基本類型,枚舉類型和實體類型是支持 。
有沒有其他的方式來寫這個條件?
如何使用'if'(有條件的'Where') –
是否'SelectedIdCollection?。載有(cb.Id)?真正的工作? –
@PatrickHofman那不會編譯。沒有空傳播算子的表達式。 。 – Servy