2016-09-26 10 views
0

データベース - 最初のソリューションにNULL値を挿入することはできません。は、列「ID」(最初のデータベース)

UserProfileという2つのテーブルを使用しています。彼らは両方ともプライマリキーとしてuniqueidentifier(SQL Server)を使用しています。私のEDMXファイルを開き

  1. :私は、自動的にそれが自分のGUIDのIDが受信するUserを聞かせて道からでした。

  2. 右ユーザーのGUID列をクリック - >プロパティ - >アイデンティティにStoreGeneratedPatternを変更します。

チャームのように働いた。今、私はReviewと同じことをしようとしたが、私は、私は新しい行を作成しようとしているたびに、次のエラーを取得しています:

が列「ID」にNULL値を挿入することはできません、テーブル 「XXXX .dbo.Profile ';列はNULLを許可しません。 INSERTは失敗します。 ステートメントが終了しました。

私は、それがユニークなIDを生成しません、ProfileためStoreGeneratedPatternのために私は再び新しい行を作成しようとした場合、重複エラーにつながるゼロの代わりにちょうど束をIdentityを使用しない場合。

なぜユーザーはProfile正常に動作していないが?

私は両方のテーブルのために、このガイドguideを追いました。

+0

あなたのエラーメッセージは、「プロフィール」ではなく、「プロファイル」という名前のテーブルを参照します。あなたが間違っている/それが参照するテーブルまたはクラスの名前を付けることは可能ですか? –

+1

uniqueidentifier(Guid)列にDatabaseGeneratedOption.Identityを使用することはできません。 DBMSのGuidカラムは自動的にインクリメントされることはなく、StoreGeneratedPatternをIdentityに変更したので、EFはそれをDBMSによって与えられると期待しているので、値として渡しません。 – DevilSuichiro

+0

を有効にするには、StoreGeneratedPatternをNoneに変更し、有効なGuid値を設定するか、データ型を変更します。 – DevilSuichiro

答えて

1

@Gert Arnoldがコメントで述べたように、Profileテーブルにnewsequentialid()テーブルを追加するのを忘れてしまいました。私がそれをしたら、ついにDatabaseGeneratedOption.IdentityというユニークなGuidsを生成することができました。

あなたはこの方法hereについての詳細を読むことができます。これにはCode-Firstの技術も含まれます。

関連する問題