从 mvc 代码中的 10 而不是 1 开始 Id,从特定点开始自动递增



这是我首先在代码中的模型,我在正常的表中使用 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; }

我的问题是:如何首先从代码中的特定点开始自动增量, 当我将项目添加到数据库时,默认模式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

将此序列附加为"报价否"列的默认值,如下所示:

ALTER TABLE Offer ADD CONSTRAINT OfferNoSeq 
DEFAULT (NEXT VALUE FOR OfferNoSeq)  FOR OfferNo;

没有直接的方法可以在代码优先中实现这一点。因此,要使用这些选项中的任何一个,您需要

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

最新更新