Dim itemList
itemList = From items In Context.Product
Select New With {Key .Code = items.ITEM_CODE_, Key .Name = items.ITEM_NAME, Key .Eancode = items.EANCODE}
Dim sortList = itemList.Where(Function(u) u.Name.Contains("soap"))
當我執行的最後一行時我正在一個錯誤:如何在Entity Framework中聲明選擇實體數據類型?
"Method invocation failed because 'Public Function Where(predicate As String, ParamArray parameters As System.Data.Objects.ObjectParameter()) As System.Data.Objects.ObjectQuery`1[[VB$AnonymousType_2(Of VB$AnonymousType_2(Of Integer,String,String))' cannot be called with these arguments:" & vbCrLf & " Argument matching parameter 'predicate' cannot convert from 'VB$AnonymousDelegate_0(Of Object,Object)' to 'String'."
其實我想的itemList
實體傳遞到另一個方法,並在方法我想使用過濾器/動態排序選項。
像下面
Dim itemList
itemList = From items In Context.Product
Select New With {Key .Code = items.ITEM_CODE_, Key .Name = items.ITEM_NAME, Key .Eancode = items.EANCODE}
Call LoadData(itemList)
Sub LoadData(itemList as Object)
Dim sortList = itemList.Where(Function(u) u.Name.Contains("soap"))
End Sub
請分享我你的建議如何可以解決?
非常感謝@Marc。但我想過濾像下面的動態列[Dim sortList = itemList.Where(Function(u)u.Name.Contains(「soap」)) Dim sortList = itemList.Where(Function(u)u.Code.Contains (10))]這是可能的動態過濾器? –
你是什麼意思的「動態過濾器」。你有一個例子嗎?因爲u.Name.Contains(「soap」)或u.Code.Contains(10)已經是可能的了。 – Marc
假設我將按名稱進行過濾,如Dim sortList = itemList.Where(Function(u)u.Name.Contains 「肥皂」))。後來用戶想通過代碼過濾數據,所以我怎麼可以代替上述表達式代替名稱。 –