在 MySQL 到 SQL Server 資料遷移期間,出現一個常見錯誤:LINQ to Entities 無法辨識 System.String ToString()
方法,從而阻止轉換為資料庫查詢。 當比較 LINQ where
子句中的字串時,通常會發生這種情況。
解決方案涉及將 ToString()
的字串結果儲存在臨時變數中,然後再在查詢中使用它。這有效地將字串視為常數,從而實現成功的 SQL 轉換。 方法如下:
<code class="language-csharp">var strItem = item.Key.ToString(); IQueryable<entity> pages = from p in context.pages where p.Serial == strItem select p;</code>
透過將 item.Key.ToString()
指派給 strItem
,此方法的結果將成為 LINQ to Entities 轉換器可以理解的常數值。
或者,按照 Alex 的建議(上下文需要參考),SqlFunctions
幫助器類別為 LINQ to Entities 查詢提供專門的方法,從而可能消除對臨時變數的需要。 有關使用 SqlFunctions
的詳細說明,請參閱 Alex 的解決方案。
以上是如何解決'LINQ to Entities 無法辨識方法'System.String ToString()'方法”錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!