1

私はこのエラーを受け取り続けます:

列'Id'、テーブル'database.dbo.Employees'に値NULLを挿入できません。列はnullを許可しません。INSERTは失敗します。\r\nステートメントは終了しました。

ただし、オブジェクトにはこのプロパティが設定されていますGuid.NewGuid()

私はEntityFramework4.1と.netFramework4.0を使用しています。

列は主キーであり、nullではありません。私はコードファーストアプローチを使用していません。

編集:ファイルedmxを手動で編集した場合、カスタム実行ツールはファイルを更新しないようです。

4

2 に答える 2

3

これは、FluentAPIまたはデータアノテーションを使用してモデルで自動生成されたIDとしてキープロパティをマークした場合に発生する可能性があります...

[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid Id { get; set; }

...(これは、キーがデータベースで生成されることを想定しているため、EFがデータベースに値を送信しないという効果があります)が、データベーステーブルで、列のデフォルト値が次のようになるようにId指定していません。データベースは新しいキーを生成しません。Idnewid()

Guidクライアントからデータベースに手動で値を送信したいのですがDatabaseGeneratedOption.Identity、モデルから仕様を削除します。

于 2012-10-27T12:27:02.047 に答える
0

エラーの原因となった問題は、カスタムの実行ツールがエンティティを完全に更新しなかったことです。SQLからの挿入が機能したので、Slaumaが提案した変更やエンティティからの他の変更から元に戻してみました。

于 2012-10-27T14:24:46.103 に答える