对“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中文网其他相关文章!