EF6代码第一键不自动递增
本文关键字:代码 一键 EF6 | 更新日期: 2023-09-27 18:18:18
我有这样一个类模型:
public class Results
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public int GameId { get; set; }
public Games Game { get; set; }
public string Notes { get; set; }
public virtual ICollection<ResultItems> ResultItems { get; set; }
}
由于某些原因,Id字段没有按照模式设置为自动递增:
CREATE TABLE [dbo].[Results]
(
[Id] INT NOT NULL,
[GameId] INT NOT NULL,
[Notes] NVARCHAR (MAX) NULL,
CONSTRAINT [PK_dbo.Results] PRIMARY KEY CLUSTERED ([Id] ASC),
CONSTRAINT [FK_dbo.Results_dbo.Games_GameId]
FOREIGN KEY ([GameId]) REFERENCES [dbo].[Games] ([Id]) ON DELETE CASCADE
);
GO
CREATE NONCLUSTERED INDEX [IX_GameId] ON [dbo].[Results]([GameId] ASC);
我还添加了:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Results>().HasKey(p => p.Id).Property(p => p.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
base.OnModelCreating(modelBuilder);
}
到我的数据库上下文中,但是迁移仍然不会使该字段自动增加。有人能看出我哪里做错了吗?
谢谢。
保罗。
sql server不支持alter column for add identity特性。当你的表被创建,你不想丢失你的数据,你不能自动做到这一点,备份表,删除列(在EF中忽略),并使用EF重新创建表或列,然后恢复值