Model view controller 在mvc代码中首先从10开始Id,而不是1و;从特定点开始自动递增

Model view controller 在mvc代码中首先从10开始Id,而不是1و;从特定点开始自动递增,model-view-controller,code-first,Model View Controller,Code First,这是我在代码中首先使用的模型,我在normal中使用Id作为表的索引和标识的键 public int Id { get; set; } public int Code { get; set; } public string Name { get; set; } public string Description { get; set; } public virtual IEnumerable<Item> Items { get; set

这是我在代码中首先使用的模型,我在normal中使用Id作为表的索引和标识的键

    public int Id { get; set; }


    public int Code { get; set; }

    public string Name { get; set; }

    public string Description { get; set; }
    public virtual IEnumerable<Item> Items { get; set; }
    public int MainGroupId { get; set; }
    public virtual MainGroup  mainGroup { get; set; }
public int Id{get;set;}
公共整数代码{get;set;}
公共字符串名称{get;set;}
公共字符串说明{get;set;}
公共虚拟IEnumerable项{get;set;}
public int MainGroupId{get;set;}
公共虚拟主组主组{get;set;}
我的问题是:如何首先从代码中的特定点开始自动递增,
当我向数据库中添加一个项目时,在默认模式下id从1开始,但我希望从10开始,我如何才能做到这一点

我认为您可以使用标识列,并自定义数据库初始化或迁移以设置标识列的种子

执行此操作的
T-SQL
命令是:

DBCC CHECKIDENT ('Offer', RESEED, 123);
请注意,下一个插入值不是123,而是123+增量(如果默认增量为1,则为124)

您还可以使用带有
DatabaseGeneratedOption.Computed
的列和序列作为字段的默认值(如果您使用的是最新的SQL server版本)。创建序列时,可以指定初始值和增量:

CREATE SEQUENCE OfferNoSeq
START WITH 1 -- Initial Value
INCREMENT BY 1 -- Increment
附加此序列作为OfferNo列的默认值,如下所示:

ALTER TABLE Offer ADD CONSTRAINT OfferNoSeq 
DEFAULT (NEXT VALUE FOR OfferNoSeq)  FOR OfferNo;
没有直接的方法首先在代码中实现这一点。因此,要使用这些选项中的任何一个,您需要

  • 这是通过实现您自己的 数据库初始值设定项类,并从中执行所需的SQL命令 种子方法(查找公共类的实现) 链接文章中的MyInitializer) 或to:您可以在迁移的Up()或Down()方法中执行任何SQL命令,如 链接答案