ホームページ > データベース > mysql チュートリアル > MySQL から SQL Server への移行中に、LINQ to Entities が「System.String ToString()」例外をスローするのはなぜですか?

MySQL から SQL Server への移行中に、LINQ to Entities が「System.String ToString()」例外をスローするのはなぜですか?

Linda Hamilton
リリース: 2025-01-18 15:16:11
オリジナル
704 人が閲覧しました

Why Does LINQ to Entities Throw a

「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() を実行すると、変換はデータベース クエリの外部のメモリ内で行われます。

追加の考慮事項:

  • 新しい Entity Framework Core バージョンの場合は、SQL 互換の文字列変換に SqlFunctions ヘルパー クラスの使用を検討してください。
  • 場合によっては、ToString() が冗長です。 エラーを完全に排除するには、直接比較で十分な場合があります。

以上がMySQL から SQL Server への移行中に、LINQ to Entities が「System.String ToString()」例外をスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート