對「System.String ToString()」LINQ to Entities 異常進行故障排除
在資料庫從 MySQL 遷移到 SQL Server 期間,使用 LINQ to Entities 可能會觸發此錯誤:
<code>LINQ to Entities does not recognize the method 'System.String ToString()' method, and this method cannot be translated into a store expression.</code>
發生這種情況是因為 LINQ to Entities 缺少 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>
透過預先執行ToString()
,轉換發生在記憶體中,在資料庫查詢之外。
其他注意事項:
SqlFunctions
輔助類別進行 SQL 相容的字串轉換。 ToString()
是多餘的。 直接比較可能就足夠了,完全消除錯誤。 以上是為什麼 LINQ to Entities 在 MySQL 到 SQL Server 遷移期間引發「System.String ToString()」異常?的詳細內容。更多資訊請關注PHP中文網其他相關文章!