我有一個非常直接的查詢,它在運行時產生這個錯誤:String.Contains方法只支持客戶端可以評估的參數。使用包含在Linq查詢中會產生錯誤
查詢應該只查找分配給它們的轉移類別。轉移可以列在幾個類別中,因此不存在表關係。 Categoryidhash包含「7〜34〜25〜42〜47」等數據。我剛剛意識到這一點,搜索'7'將返回多個結果,「7」&'47'等等這就好了,我只是改變ID的所有雙位數。同時...
我該如何解決這個問題?
Private Function GetCategoryList() As List(Of Category)
Dim lst As List(Of Category) = New List(Of Category)
Using db As New IPCDataDataContext
lst = (From c In db.Categories
From t In db.Transfers
Where t.CategoryIDhash.Contains(c.ID.ToString)
Select c).ToList()
Return lst
End Using
End Function
*「我剛剛意識到在寫這篇文章時,搜索'7'會返回多個結果,」7「和'47'等等。那好吧我只需要將id改爲全部兩位數。」* **本身就是一個跡象表明你正在做錯誤的方法**正常的做法是建立一個連接,並將每個(在你的情況下)類別ID存儲在一個單獨的表中,該表中有一個外鍵關係(看起來像在你的情況)轉移表。如果你將來需要超過99個類別,該怎麼辦?我不知道如何編寫Linq-to-SQL代碼,但你真的應該研究它。 –