MySQL から SQL Server へのデータ移行中に、一般的なエラーが発生します。LINQ to Entities が System.String ToString()
メソッドを認識できず、データベース クエリへの変換が妨げられます。 これは通常、LINQ where
句内の文字列を比較するときに発生します。
この解決策には、ToString()
の文字列結果をクエリで使用する前に一時変数に保存することが含まれます。これにより、文字列が事実上定数として扱われ、SQL 変換が成功するようになります。 その方法は次のとおりです:
var strItem = item.Key.ToString(); IQueryable<entity> pages = from p in context.pages where p.Serial == strItem select p;
item.Key.ToString()
を strItem
に代入すると、メソッドの結果は LINQ to Entities トランスレーターによって理解される定数値になります。
Alex が提案しているように (コンテキストに必要な参照)、SqlFunctions
ヘルパー クラスは LINQ to Entities クエリ用の特殊なメソッドを提供し、一時変数の必要性を排除する可能性があります。 SqlFunctions
の使用方法の詳細については、Alex のソリューションを参照してください。
以上が「LINQ to Entities はメソッド 'System.String ToString()' メソッドを認識しません」エラーを解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。