【问题标题】:How can I generate primary key with particular range in ASP.NET Core? [duplicate]如何在 ASP.NET Core 中生成具有特定范围的主键? [复制]
【发布时间】:2021-12-24 19:22:58
【问题描述】:
[Required, Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int AccountNumber { get; set; }

此代码生成主键,其值从 1 开始,依此类推,并以 1 递增。有没有我可以为其提供起始值?

【问题讨论】:

    标签: sql-server asp.net-core


    【解决方案1】:

    为此,最好使用序列而不是 IDENTITY 列,例如:

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.HasSequence<int>("AccountNumbers", schema: "dbo")
            .StartsAt(1000)
            .IncrementsBy(1);
    
        modelBuilder.Entity<Account>()
            .Property(o => o.AccountNumber)
            .HasDefaultValueSql("NEXT VALUE FOR dbo.AccountNumbers");
    }
    

    EF Core - Sequences.

    对于 IDENTITY,您可以在 Custom Migration 中调用 DBCC CHECKIDENT

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-01
      • 2011-08-27
      • 2015-10-28
      • 2019-07-18
      • 1970-01-01
      • 2019-04-04
      • 2020-10-16
      • 1970-01-01
      相关资源
      最近更新 更多