【发布时间】:2014-05-20 01:05:27
【问题描述】:
我目前有一个问题,每次我执行 db.SaveChanges 时我的 ShoppingBasket 表中的主键都不会自动递增,这会导致重复键错误。我的印象是实体框架数据库中的任何主键都已设置为自动递增,但也许我错了?
购物篮.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 模型中添加 [DatabaseGenerated] 和 [Key],但我仍然遇到相同的错误。
ShoppingBasket.Model
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; }
}
手动插入唯一键时我没有错误,因此我认为问题在于找到使 CartID 自动递增的解决方案。
【问题讨论】:
标签: c# sql entity-framework