方法: GUID プロパティをバイナリ列にマップする (Entity Framework)
このトピックでは、.edmx ファイルを手動で編集して、データ ソースの uniqueidentifier 値を格納しているバイナリ列を概念モデルの GUID プロパティにマップする方法を説明します。 Entity Data Model ウィザード または モデルの更新ウィザード (Entity Data Model ツール) を使用してデータ モデルを生成または更新すると、データ ソース内の uniqueidentifier 型の列にエンティティ型の GUID プロパティが自動的に生成されます。 また、データ ソースも 16 バイトのバイナリ列を使用して GUID 値を格納している場合があります。 ツールでデータ ソース内の各バイナリ列にバイナリ プロパティが生成されるため、.edmx ファイルを編集して、そのような列の GUID プロパティへのマッピングを手動で更新する必要があります。
このトピックの手順は、Visual Studio で有効な .edmx ファイルが開いていることを前提としています。
![]() |
---|
以下の手順に従って .edmx ファイルの SSDL セクションに加えた変更は、モデルの更新ウィザードを使用してモデルを更新すると上書きされます。 |
GUID 値を含むバイナリ列に GUID プロパティをマップするには
Entity Data Model デザイナーで、GUID 型に変更するプロパティを選択します。
[プロパティ] ウィンドウで、Binary から Guid に型を変更します。
この時点でプロジェクトをビルドすると、マッピング エラーが発生します。
モデルを保存して Entity Data Model デザイナーを終了し、XML エディターを使用して .edmx ファイルを開きます。
SSDL セクションで、CSDL セクションの GUID プロパティに対応するバイナリ プロパティを見つけます。
このプロパティの Type 属性の値を
uniqueidentifier
に変更します。 詳細については、「Property Element (EntityType SSDL)」を参照してください。変更内容をモデルに保存し、データ クラスを再生成するソリューションを再ビルドします。