EntityFrameworkCore 键列从特定值自动递增
EntityFrameworkCore Key column auto increment from specific value
带有自动递增的 Key
列的简单 class
public class SomeClass
{
[Key]
public long SomeClassId { get; set;}
}
通常SomeClassId
会从1开始自动递增。有没有办法强制ID从一个特定的数字开始,比如10001?
建议here通过Sql()
执行CHECKIDENT
命令。但是我想知道是否还有其他方法可以解决这个问题?
谢谢!
是的,您可以使用 Fluent API.示例代码
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");
}
}
带有自动递增的 Key
列的简单 class
public class SomeClass
{
[Key]
public long SomeClassId { get; set;}
}
通常SomeClassId
会从1开始自动递增。有没有办法强制ID从一个特定的数字开始,比如10001?
建议here通过Sql()
执行CHECKIDENT
命令。但是我想知道是否还有其他方法可以解决这个问题?
谢谢!
是的,您可以使用 Fluent API.示例代码
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");
}
}