gpt4 book ai didi

c# - Entity Framework 主键列不自动递增

转载 作者:行者123 更新时间:2023-12-02 04:31:38 24 4
gpt4 key购买 nike

我目前遇到一个问题,每次执行 db.SaveChanges 时,ShoppingBasket 表中的主键不会自动递增,这会导致重复键错误。我的印象是 Entity Framework 数据库中的任何主键都已设置为自动增量,但也许我错了?

购物篮.db

CREATE TABLE [dbo].[ShoppingBasket] (
[CartID] INT NOT NULL,
[BasketID] VARCHAR (50) NULL,
[BasketQuantity] INT NOT NULL,
[ProductID] INT NOT NULL,
PRIMARY KEY CLUSTERED ([CartID] ASC),
CONSTRAINT [FK_ShoppingBasket_Products] FOREIGN KEY ([ProductID]) REFERENCES [dbo].[Products] ([ProductID])
);

我尝试了一些建议,例如将代码中的 CartID 键设置为 CartID = -1,并在 ShoppingBasket 模型中添加 [DatabaseGenerate] 和 [Key],但我仍然遇到相同的错误。

购物篮.模型

public partial class ShoppingBasket
{

[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int CartID { get; set; }
public string BasketID { get; set; }
public int BasketQuantity { get; set; }
public int ProductID { get; set; }

public virtual Product Product { get; set; }
}

手动插入唯一 key 时没有出现任何错误,因此我认为问题在于找到一种解决方案来使 CartID 自动递增。

最佳答案

主键默认不递增。您还应该添加 IDENTITY(1, 1)。因此,代码如下所示:

CREATE TABLE [dbo].[ShoppingBasket] (
[CartID] INT NOT NULL IDENTITY(1,1),
[BasketID] VARCHAR (50) NULL,
[BasketQuantity] INT NOT NULL,
[ProductID] INT NOT NULL,
PRIMARY KEY CLUSTERED ([CartID] ASC),
CONSTRAINT [FK_ShoppingBasket_Products] FOREIGN KEY ([ProductID]) REFERENCES [dbo].[Products] ([ProductID])
);

关于c# - Entity Framework 主键列不自动递增,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22918337/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com