EntityFrameworkCore关键列从特定值自动增加

时间:2019-05-07 12:47:46

标签: c# entity-framework-core ef-core-2.2

带有自动递增的Key列的简单类

public class SomeClass
{
    [Key]
    public long SomeClassId { get; set;}
}

通常SomeClassId将从1开始并自动递增。是否有任何办法强制ID从特定数字(例如10001)开始?

建议here通过CHECKIDENT执行Sql()命令。但是我想知道是否还有其他方法可以解决这个问题?

谢谢!

1 个答案:

答案 0 :(得分:4)

是的,您可以使用Fluent API .sample代码

class MyContext : DbContext
{
    public DbSet<SomeClass> sample{ get; set; }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.HasSequence<int>("sampleNumber", schema: "shared")
            .StartsAt(10001)
            .IncrementsBy(1);  
        modelBuilder.Entity<SomeClass>()
        .Property(o => o.SomeClassId)
        .HasDefaultValueSql("NEXT VALUE FOR shared.sampleNumber");
    }
    }