2017-03-24 20 views
0

私は奇妙な問題があります。 データベースからテーブルに項目を挿入したいとします。私はEntity Frameworkを使用します。 IDが設定されているが は、私は次のエラーを得続ける:Idが設定されているのに、カラム 'Id'に値NULLを挿入できません。

Cannot insert the value NULL into column 'Id', table 'project_atp.dbo.ShoppingCarts'; column does not allow nulls. INSERT fails.\r\nThe statement has been terminated."} 

enter image description here

テーブル定義を:

CREATE TABLE [dbo].[ShoppingCarts] (
[Id]   INT    NOT NULL, 
[Guid]   UNIQUEIDENTIFIER NULL, 
[Name]   NVARCHAR (255) NULL, 
[Code]   NVARCHAR (255) NULL, 
[SupplierNo] NVARCHAR (255) NULL, 
[SupplierName] NVARCHAR (255) NULL, 
[Price]  NVARCHAR (50) NULL, 
[Quantity]  INT    NULL, 
CONSTRAINT [PK_ShoppingCarts] PRIMARY KEY CLUSTERED ([Id] ASC) 
); 

あなたがここに間違っている可能性が何をアドバイスしてくださいすることができます!ありがとう!

+3

私の最初の考えは、フィールドマッピングが 'Id'列に対して誤って定義されていて、その後に送信されないということです。 – Shaamaan

+0

テーブル定義を投稿してください。 – toonice

+0

テーブル定義 – Orsi

答えて

1

By default Entity Framework assumes that an integer primary key is database generated。その結果、Entity Frameworkは実際のINSERTステートメントに主キーフィールドを含めません。

私は一緒に遊ぶのどちらかにしようとしてALTERにテーブル自動生成「なし」にOnlineCarStore.Models.ShoppingCarts Id列の

または設定StoreGeneratedPatternプロパティ(あなたがやったコメントから判断)IDを

またはannotation[DatabaseGenerated(DatabaseGeneratedOption.None)]を使用してください。

関連する問題