在将 Oracle DB 与 EF Core 和数据库种子一起使用时,我遇到了自动生成主键值的问题。
示例实体:
public class State : IBaseEntity, ILastEdited
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
}
然后在
OnModelCreating
方法中我有这个实体的数据种子:
modelBuilder.Entity<State>().HasData(new[]
{
new State{ Id = 1, SomeOtherProeprty = "Some value"},
});
问题是,当部署到 MS SQL 时,种子已经完成并且通过应用程序插入的新实体很好。
部署到 Oracle DB 时,当用户第一次向 State 实体表插入新行时,它因 PK 违规而崩溃,之后,它运行正常。
如何确保 Oracle 从 2 开始自动递增?
我有多个带有初始数据库种子的表,所以我需要一些系统的东西? 谢谢你的帮助。