ホームページ >データベース >mysql チュートリアル >MySQL から SQL Server への移行中に、LINQ to Entities が「System.String ToString()」例外をスローするのはなぜですか?
「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
ヘルパー クラスの使用を検討してください。ToString()
が冗長です。 エラーを完全に排除するには、直接比較で十分な場合があります。以上がMySQL から SQL Server への移行中に、LINQ to Entities が「System.String ToString()」例外をスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。