ホームページ >バックエンド開発 >C++ >「LINQ to Entities はメソッド 'System.String ToString()' メソッドを認識しません」エラーを解決するにはどうすればよいですか?

「LINQ to Entities はメソッド 'System.String ToString()' メソッドを認識しません」エラーを解決するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2025-01-22 09:21:09397ブラウズ

How to Resolve the

「LINQ to Entities が 'System.String ToString()' を認識しません」エラーのトラブルシューティング

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。