首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >实体框架在非主键的列上设置自动增量和开始值

实体框架在非主键的列上设置自动增量和开始值
EN

Stack Overflow用户
提问于 2017-05-19 07:25:28
回答 1查看 5.1K关注 0票数 0

我们使用实体框架。我对DB中的一个表有个问题。

Id是一个GUID,在这里我们手动创建一个新的GUID。现在,我想实现一个新列来自动递增,我希望从100000000开始。使列自动增量正常工作(我认为)

代码语言:javascript
运行
复制
 Company {
    private Guid id = Guid.NewGuid();

    [Required, Range(10000000, 999999999)]
    [Index(IsUnique = true)]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public virtual long StakeholderNumber
    {
        get;
        set;
    }
 }

在添加迁移时,我会得到这个迁移文件;

代码语言:javascript
运行
复制
    public override void Up()
    {
        AlterColumn("dbo.Companies", "StakeholderNumber", c => c.Long(nullable: false, identity: true));
        CreateIndex("dbo.Companies", "StakeholderNumber", unique: true);
    }

    public override void Down()
    {
        DropIndex("dbo.Companies", new[] { "StakeholderNumber" });
        AlterColumn("dbo.Companies", "StakeholderNumber", c => c.Long(nullable: false));
    }

这看起来很管用。但我希望stakeholderNumber从100000000开始,而不是从1开始。从其他示例来看,这可以通过将监视者编号设置为primary来工作,然后添加行:

代码语言:javascript
运行
复制
        Sql("DBCC CHECKIDENT ('dbo.Companies', RESEED, 100000000);");

但我不想让监视者号成为primary

如果我用updadte数据库运行这个程序,就会得到以下错误:

公司的不包含身份列

那么,是否有一种方法可以将Stakeholdernumber的自动增量设置为10000000,而不使用列primary

EN

回答 1

Stack Overflow用户

发布于 2018-01-03 14:01:50

我也有同样的问题,用顺序结束。我定义了一个序列,然后像这样使用它

代码语言:javascript
运行
复制
protected override void OnModelCreating(ModelBuilder builder)
    {
        base.OnModelCreating(builder);

        builder.HasSequence<int>("MySequence", schema: "shared").StartsAt(10000000).IncrementsBy(1);

         modelBuilder.Entity<Company>()
        .Property(o => o.StakeholderNumber)
        .HasDefaultValueSql("NEXT VALUE FOR shared.MySequence");            
    } 

对我来说很合适。我正在使用EF核心2.0。

参考文献:https://learn.microsoft.com/en-us/ef/core/modeling/relational/sequences

希望能帮上忙!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44063942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档