10

GUIDを格納したSQLに列(一意の識別子)があります。大文字であることがわかります。ただし、データが SP を介して C# コードに返されると、小文字になります。

データ アクセスにエンティティ フレームワークを使用しています。何が原因で、この変換を回避できますか?

4

2 に答える 2

9

Entity Framework を使用している場合、uniqueidentifierデータは Guid に変換されます。

指定された形式の一連の小文字の 16 進数として表される、この Guid の値。

アプリケーションに一貫性が必要な場合は、Guid から文字列を取得するときに 1 つの形式を使用できます。

使用可能な形式については、Guid.ToString メソッド (文字列)を確認してください

guid をデータベースから文字列として取得する場所がある可能性があるため、無限大の大文字になります。(ストアドプロシージャビューなどを確認してください。)

この問題を回避するuniqueidentifierには、varchar に変換せず、文字列に変換するときに孤立した形式に従う必要があります。

比較などの他の操作には、Guid 演算子を使用できます。

于 2013-06-05T11:12:24.477 に答える
3

SQL Server は uniqueidentifier を 128 ビットの整数として格納し、それを 16 進数に変換して表示していると思われます。アレクサンダーが言うように、この 16 進値を大文字で表示するか小文字で表示するかは、同じものを表しているため問題ありません。

アプリケーションにとって重要な場合は、問題なく C# で大文字に変換できます。

于 2013-06-05T11:10:31.140 に答える