这是我首先在代码中的模型,我在正常的表中使用 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 命令,如 链接答案