无法将值NULL插入列' Id'虽然Id已设定

时间:2017-03-24 10:09:35

标签: sql model-view-controller

我有一个奇怪的问题。 我想从数据库中将项插入表中。我使用Entity Framework。 虽然Id已设置,但我不断收到以下错误:

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)
 );

你能告诉我这里有什么问题!谢谢!

1 个答案:

答案 0 :(得分:1)

By default Entity Framework assumes that an integer primary key is database generated。因此,实体框架不会在实际的INSERT语句中包含主键字段。

我会尝试和桌子一起玩ALTER来自动生成ID(根据你的评论判断)

或将OnlineCarStore.Models.ShoppingCarts Id列的StoreGeneratedPattern属性设置为'None'

或使用annotation[DatabaseGenerated(DatabaseGeneratedOption.None)]