我有一个奇怪的问题。 我想从数据库中将项插入表中。我使用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."}
表格定义:
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)
);
你能告诉我这里有什么问题!谢谢!
答案 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)]
。